在Python中从XML获取文本值

时间:2009-09-16 16:02:08

标签: python xml parsing

from xml.dom.minidom import parseString
dom = parseString(data)
data = dom.getElementsByTagName('data')

'data'变量作为元素对象返回,但我不能在生活中看到文档中抓取元素的文本值。

例如:

<something><data>I WANT THIS</data></something>

有人有什么想法吗?

2 个答案:

答案 0 :(得分:4)

所以看待它的方式是“我想要这个”实际上是另一个节点。它是“数据”的文本孩子。

from xml.dom.minidom import parseString
dom = parseString(data)
nodes = dom.getElementsByTagName('data')

此时,“nodes”是NodeList,在您的示例中,它有一个项目,即“data”元素。相应地,“data”元素也只有一个子节点,它是一个文本节点“I WANT THIS”。

所以你可以这样做:

print nodes[0].firstChild.nodeValue

请注意,如果输入中有多个名为“data”的标记,则应在“节点”上使用某种迭代技术,而不是直接将其编入索引。

答案 1 :(得分:3)

这应该可以解决问题:

dom = parseString('<something><data>I WANT THIS</data></something>')
data = dom.getElementsByTagName('data')[0].childNodes[0].data

即。您需要深入了解DOM结构以获取文本子节点,然后访问其值。