Ali*_*lik 5 python xml minidom xml-parsing python-2.7
我已经使用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>
Run Code Online (Sandbox Code Playgroud)
我想获得"必需"的文本,但得到这样的输出
Required
Required
Not Required
Not Required
Required
Not Required
Required
Run Code Online (Sandbox Code Playgroud)
这是我的代码示例,从文件中获取所有文本,但我需要在父标记的直接子标记内的文本内...
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
Run Code Online (Sandbox Code Playgroud)
渴望输出我想要的
Required
Required
Required
Required
Run Code Online (Sandbox Code Playgroud)
除非您的实际 XML 更加复杂,否则您可以导航 DOM 树并从 的text子节点中的子节点中获取parts所需的子节点computer:
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
Run Code Online (Sandbox Code Playgroud)
要使用 XPath(正如我之前建议的那样)和更简单的 DOM 导航,最好使用Element Tree API。
| 归档时间: |
|
| 查看次数: |
5201 次 |
| 最近记录: |