我有这个示例xml文档片段
<root>
<foo>bar</foo>
<foo>baz</foo>
</root>
我正在使用xml.dom中的python的minidom方法。我正在使用getElementsByTagName(“foo”)读取标签。如何获取标签之间的文本?如果标签是嵌套的,我将如何获得这些?
答案 0 :(得分:0)
因此,如果您需要获取文本,则可以执行以下操作:
import xml.dom.minidom
document = "<root><foo>bar</foo><foo>baby</foo></root>"
dom = xml.dom.minidom.parseString(document)
def getText(nodelist):
rc = []
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc.append(node.data)
return ''.join(rc)
def handleTok(tokenlist):
texts = ""
for token in tokenlist:
texts += " "+ getText(token.childNodes)
return texts
foo = dom.getElementsByTagName("foo")
text = handleTok(foo)
print text
他们在网站上有一个很好的例子: http://docs.python.org/library/xml.dom.minidom.html
编辑:对于嵌套标签,请查看网站上的示例。
答案 1 :(得分:0)
以下是ElementTree:
的方法xml='''\
<root>
<foo>bar</foo>
<foo>baz</foo>
</root>'''
import xml.etree.ElementTree as ET
for child in ET.fromstring(xml):
print child.tag, child.text
打印:
foo bar
foo baz