简体   繁体   English

python minidom读取xml

[英]python minidom read xml

I have this xml : 我有这个xml:

<?DOMParser ?> 
<logbook:LogBook xmlns:logbook="http://www/logbook/1.0"  version="1.2">
<visits>
<visit>
    <general>
        <startDateTime>2014-01-10T12:22:39.166</startDateTime>
        <endDateTime>2014-03-11T13:51:31.480</endDateTime>
    </general> 
</visit>
<visit>
<general>
    <startDateTime>2013-01-10T12:22:39.166</startDateTime>
    <endDateTime>2013-03-11T13:51:31.480</endDateTime>
</general>
</visit>
</visits>
</logbook:LogBook>

I want to have this output from xml: 我想从xml获得以下输出:

startDateTime           | endDateTime           |
-----------------------|-----------------------|
2014-01-10T12:22:39.166|2014-03-11T13:51:31.480|
-----------------------|-----------------------|
2013-01-10T12:22:39.166|2013-03-11T13:51:31.480|

I am using minidom , so I wrote: 我正在使用minidom ,所以我写道:

 import xml.dom.minidom as minidom
 doc=minidom.parse('test.xml')
 general=doc.getElementsByTagName('general')[0]
 startDateTime=general.getAttribute('startDateTime')
 print(startDateTime)

This return empty string to me. 这返回空字符串给我。 any help here? 这里有什么帮助吗?

I prefer to use the ElementTree class: 我更喜欢使用ElementTree类:

from StringIO import StringIO
from xml.etree.ElementTree import ElementTree

et = ElementTree(None, StringIO("""<?DOMParser ?>
<logbook:LogBook xmlns:logbook="http://www/logbook/1.0"  version="1.2">
<visits>
  <visit>
    <general>
        <startDateTime>2014-01-10T12:22:39.166</startDateTime>
        <endDateTime>2014-03-11T13:51:31.480</endDateTime>
    </general>
  </visit>
<visit>
<general>
    <startDateTime>2013-01-10T12:22:39.166</startDateTime>
    <endDateTime>2013-03-11T13:51:31.480</endDateTime>
</general>
</visit>
</visits>
</logbook:LogBook>"""))

for general in et.iterfind('visits/visit/general'):
    start = general.findtext('startDateTime')
    finish = general.findtext('endDateTime')
    print start, finish

Outputs: 输出:

2014-01-10T12:22:39.166 2014-03-11T13:51:31.480
2013-01-10T12:22:39.166 2013-03-11T13:51:31.480

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM