python 迷你王国 xml 解析器 3
python minidom xml parser 3
<student id="1" student:name="robert">
<sectionA>
<class name="first"/>
</sectionA>
</student>
<student id="2" student:name="lucky">
<sectionB>
<class name="first"/>
</sectionB>
</student>
<student id="2" student:name="Dave">
<sectionA>
<class name="third"/>
</sectionA>
</student>
from xml.dom import minidom
dom1 = minidom.parse("file.xml")
student = dom1.getElementsByTagName("student")
for b in student:
sectionA = dom1.getElementsByTagName("sectionA")
for a in sectionA:
name = b.getAttribute("student:name")
print name
这给了我以下输出:
罗伯特
幸运的
戴夫
但是我期待以下输出
预期输出:
罗伯特
戴夫
在这一行中:
student = dom1.getElementsByTagName("student")
实际上获取了所有项目,然后总是在 a
中存在一些东西,然后您尝试从 b
到 getAttribute
!为什么 b
?
也许最后的for
完全没有必要,可以用:
student = dom1.getElementsByTagName("sectionA")
然后使用 parentNode
!
获取属性
您可以使用 parentNode()
例如,您可以将代码更改为:
from xml.dom import minidom
dom1 = minidom.parse("file.xml")
student = dom1.getElementsByTagName("sectionA")
for b in student:
print(b.parentNode.getAttribute("name"))
# Output:
# robert
# Dave
参考:xml.de
<student id="1" student:name="robert">
<sectionA>
<class name="first"/>
</sectionA>
</student>
<student id="2" student:name="lucky">
<sectionB>
<class name="first"/>
</sectionB>
</student>
<student id="2" student:name="Dave">
<sectionA>
<class name="third"/>
</sectionA>
</student>
from xml.dom import minidom
dom1 = minidom.parse("file.xml")
student = dom1.getElementsByTagName("student")
for b in student:
sectionA = dom1.getElementsByTagName("sectionA")
for a in sectionA:
name = b.getAttribute("student:name")
print name
这给了我以下输出: 罗伯特 幸运的 戴夫
但是我期待以下输出 预期输出: 罗伯特 戴夫
在这一行中:
student = dom1.getElementsByTagName("student")
实际上获取了所有项目,然后总是在 a
中存在一些东西,然后您尝试从 b
到 getAttribute
!为什么 b
?
也许最后的for
完全没有必要,可以用:
student = dom1.getElementsByTagName("sectionA")
然后使用 parentNode
!
您可以使用 parentNode()
例如,您可以将代码更改为:
from xml.dom import minidom
dom1 = minidom.parse("file.xml")
student = dom1.getElementsByTagName("sectionA")
for b in student:
print(b.parentNode.getAttribute("name"))
# Output:
# robert
# Dave
参考:xml.de