Python: 如何使用xml.dom.minidom获取XML元素的文本内容?
我在一个XML对象上调用了 elems = xmldoc.getElementsByTagName('myTagName')
,这个对象是通过 minidom.parse(xmlObj)
解析出来的。现在我想获取这个元素的文本内容,虽然我花了一些时间查看了 dir() 并尝试了各种方法,但还没有找到合适的调用方式。举个例子,我想要实现的目标是:
<myTagName> Hello there </myTagName>
我想提取出“Hello there”。(当然我可以自己解析,但我觉得应该有一些内置的功能可以用)
谢谢
3 个回答
2
for elem in elems:
print elem.firstValue.nodeValue
这段代码会打印出每个myTagName的文本内容。
比如说,打印出来的内容是:James
8
等一下...你是想要某个节点下面的所有文本吗?那就需要用到一种遍历子树的函数。这个函数不一定要用递归,但用递归的方法效果也很好:
def get_all_text( node ):
if node.nodeType == node.TEXT_NODE:
return node.data
else:
text_string = ""
for child_node in node.childNodes:
text_string += get_all_text( child_node )
return text_string
29
试试这样做:
xmldoc.getElementsByTagName('myTagName')[0].firstChild.nodeValue