如何获得直接子节点而不是具有相同标签名称xml minidom python的
发布时间:2020-12-16 23:31:39 所属栏目:百科 来源:网络整理
导读:我已经使用xml minidom从xml文件中获取一些数据但无法获得所需的结果…尝试从x2 minidom相关的此站点的许多代码但是失败..这是我的示例xml文件.. computer parts textRequired/text /parts parts textRequired/text parts text?Not Required/text /parts par
我已经使用xml minidom从xml文件中获取一些数据但无法获得所需的结果…尝试从x2 minidom相关的此站点的许多代码但是失败..这是我的示例xml文件..
<computer> <parts> <text>Required</text> </parts> <parts> <text>Required</text> <parts> <text>?Not Required</text> </parts> <parts> <text>?Not Required</text> </parts> </parts> <parts> <text>Required</text> <parts> <text>Not Required</text> </parts> </parts> <parts> <text>Required</text> </parts> </computer> 我想获得“必需”的文本,但得到这样的输出 Required Required Not Required Not Required Required Not Required Required 这是我的代码示例,从文件中获取所有文本,但我需要在父标记的直接子标记内的文本内… from xml.dom import minidom file=('d:sample.xml') xmldoc=minidom.parse(file) parentnode = xmldoc.getElementsByTagName('computer') for node in parentnode: alist=node.getElementsByTagName('text') for a in alist: t=a.childNodes[0].nodeValue print authortext 渴望输出我想要的 Required Required Required Required 解决方法
除非您的实际XML更复杂,否则您可以导航DOM树并从作为计算机子级的部分节点中的文本子项中获取所需的子节点:
import xml.dom.minidom file=('sample.xml') xmldoc=xml.dom.minidom.parse(file) computerNode = xmldoc.getElementsByTagName('computer') for computerChild in computerNode: for parts in computerChild.childNodes: for partsChild in parts.childNodes: if partsChild.nodeType == xml.dom.Node.ELEMENT_NODE: if partsChild.tagName == 'text': print partsChild.childNodes[0].nodeValue 要使用XPath,正如我之前建议的那样,以及更简单的DOM导航,最好使用Element Tree API. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |