在Python中从XML获取文本值
“data”变量以元素对象的形式返回,但我无法在文档中找到元素的文本值 例如:在Python中从XML获取文本值,python,xml,parsing,Python,Xml,Parsing,“data”变量以元素对象的形式返回,但我无法在文档中找到元素的文本值 例如: from xml.dom.minidom import parseString dom = parseString(data) data = dom.getElementsByTagName('data') 我想要这个 有人有什么想法吗?这应该可以做到: <something><data>I WANT THIS</data></something> dom=par
from xml.dom.minidom import parseString
dom = parseString(data)
data = dom.getElementsByTagName('data')
我想要这个
有人有什么想法吗?这应该可以做到:
<something><data>I WANT THIS</data></something>
dom=parseString('我想要这个')
data=dom.getElementsByTagName('data')[0]。子节点[0]。数据
i、 e.您需要深入DOM结构以获取文本子节点,然后访问其值 因此,从另一个角度来看,“我想要这个”实际上是另一个节点。它是“数据”的文本子级 此时,“nodes”是一个节点列表,在您的示例中,它有一个项目,即“data”元素。相应地,“data”元素也只有一个子元素,即文本节点“I WANT THIS” 所以你可以这样做:
from xml.dom.minidom import parseString
dom = parseString(data)
nodes = dom.getElementsByTagName('data')
请注意,如果输入中有多个名为“data”的标记,则应在“nodes”上使用某种迭代技术,而不是直接对其进行索引。请注意,如果是空字符串,则不会有子文本节点,因此childNodes[0]将失败。要正确收集文本数据,必须遍历childNodes并连接来自node.nodeType为text\u node或CDATA\u SECTION\u node的所有节点的数据。ElementTree接口更简单。
from xml.dom.minidom import parseString
dom = parseString(data)
nodes = dom.getElementsByTagName('data')
print nodes[0].firstChild.nodeValue