我在Python中使用xml.dom.mindom,并在下面的XML树中检索了book节点。我想获得所有子节点的列表。在这种情况下,我认为只会有一个。
<Book>
<Title>Why is this so hard</Title>
</Book
我打电话的时候:
nodeList = bookNode.childNodes
print "nodeList has " + str(nodeList.length) + " elements"
for node in nodeList:
print "Found a " + node.nodeName + " node"
我得到以下输出:
nodeList has 3 elements
Found a #text node
Found a Book node
Found a #text node
这些随机的#text节点是什么?如何获取每个合法节点的tagName和值?我想得到Book下每个节点的key-&gt;值对列表。我不想使用getElementsByName,因为我不会提前知道所有的tagNames。
Book -> "Why is this so hard"
Thanks- 乔纳森
答案 0 :(得分:3)
第一个文本节点是&lt; Book&gt;之间的空格。和&lt; Title&gt;。第二个是&lt; / Title&gt;之间的空格。和&lt; / Book&gt;
答案 1 :(得分:0)
这些随机的#text节点是什么?
几乎没有随机,它们是表示您在标签之间放置的空白的文本节点。 XML必须记住这一点,否则当文档重新序列化时,文档将在一个不可读的行中一起运行。
如何获取每个合法节点的tagName和值?
遍历子节点,忽略那些不是元素的节点。
我想获得Book下的每个节点的key-&gt;值对列表。
book= {}
for child in bookNode.childNodes:
if child.nodeType==child.ELEMENT_NODE:
book[child.tagName]= '' if child.firstChild is None else child.firstChild.data
这假设每个元素只包含一个文本节点。