对于Python中的程序,我正在寻找一种方法来查找XML元素中的特定文本,并找出它是哪个节点号。
这是xml:
svg
当然我知道这里可能是节点号2,但xml文件可能更长。
这是我试过的方法,但我不能让它正常工作:
-<shortcut>
<label>33060</label>
<label2>Common Shortcut</label2>
</shortcut>
-<shortcut>
<label>Test</label>
</shortcut>
答案 0 :(得分:1)
此工作示例演示了使用minidom
模块*搜索包含特定文本的元素的一种可能方法:
from xml.dom.minidom import parseString
def getText(nodelist):
rc = []
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc.append(node.data)
return ''.join(rc)
xml = """<root>
<shortcut>
<label>33060</label>
<label2>Common Shortcut</label2>
</shortcut>
<shortcut>
<label>Test</label>
</shortcut>
</root>"""
xmldoc = parseString(xml)
labels = xmldoc.getElementsByTagName("label")
for label in labels:
text = getText(label.childNodes)
if text == "Test":
print("node found : " + label.toprettyxml())
break
输出
node found : <label>Test</label>
*)getText()
功能取自this页。