使用elementT分析子元素

2024-09-30 16:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在XML文件中有代码,我使用et.解析公司名称:

<VIAFCluster xmlns="http://viaf.org/viaf/terms#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:void="http://rdfs.org/ns/void#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
<viafID>15</viafID>
<nameType>Personal</nameType>
</VIAFCluster>
<mainHeadings>
    <data>
       <text>
          Gondrin de Pardaillan de Montespan, Louis-Antoine de, 1665-1736
       </text>
    </data>
</mainHeadings>

我想把它解析为:

[15,“个人”、“冈德林等”]

我似乎无法打印任何字符串信息:

^{pr2}$

因为它看起来像“无”。。。我做错什么了?在


Tags: textorghttpdataderdfnsfoaf
1条回答
网友
1楼 · 发布于 2024-09-30 16:42:10

我仍然不确定您到底想做什么,但希望如果您运行下面的代码,它将帮助您走上正轨。让你通过getiter函数来查看。你想怎么拿就怎么拿:

import xml.etree.ElementTree as et
xml = '''
<VIAFCluster xmlns="http://viaf.org/viaf/terms#" 
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
             xmlns:void="http://rdfs.org/ns/void#" 
             xmlns:foaf="http://xmlns.com/foaf/0.1/">
    <viafID>15</viafID>
    <nameType>Personal</nameType>
    <mainHeadings>
        <data>
           <text>
              Gondrin de Pardaillan de Montespan, Louis-Antoine de, 1665-1736
           </text>
        </data>
    </mainHeadings>
</VIAFCluster>
'''
tree = et.fromstring(xml)
lst = []
for i in tree.getiterator():
    t = i.text.strip()
    if t:
        lst.append(t)
        print i.tag
        print t

你会得到你想要的清单。我不得不清理你的xml,因为你有不止一个顶级元素,这是不可能的,也许这就是你一直以来的问题。在

祝你好运,迈克

相关问题 更多 >