首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python minidom读取xml

python minidom读取xml
EN

Stack Overflow用户
提问于 2017-07-19 06:32:10
回答 1查看 170关注 0票数 0

我有一个xml:

代码语言:javascript
复制
<?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>

我希望从xml获得这个输出:

代码语言:javascript
复制
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|

我正在使用minidom,所以我写到:

代码语言:javascript
复制
 import xml.dom.minidom as minidom
 doc=minidom.parse('test.xml')
 general=doc.getElementsByTagName('general')[0]
 startDateTime=general.getAttribute('startDateTime')
 print(startDateTime)

把空字符串还给我。这里有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-19 07:42:08

我更喜欢使用ElementTree类:

代码语言:javascript
复制
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

产出:

代码语言:javascript
复制
2014-01-10T12:22:39.166 2014-03-11T13:51:31.480
2013-01-10T12:22:39.166 2013-03-11T13:51:31.480
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45182562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档