我正在尝试编写一个python程序,该程序使用DOM读取xml文件并打印另一个xml结构,该结构仅从一个具有特定选定属性“fun”的节点列出。
<?xml version="1.0" encoding="ISO-8859-1"?>
<website>
<url category="fun">
<title>Fun world</title>
<author>Jack</author>
<year>2010</year>
<price>100.00</price>
</url>
<url category="entertainment">
<title>Fun world</title>
<author>Jack</author>
<year>2010</year>
<price>100.00</price>
</url>
</website>
我无法从具有category =“fun”的网址中选择列表。
我试过这段代码:
for n in dom.getElementsByTagName('url'):
s = n.attribute['category']
if (s.value == "fun"):
print n.toxml()
你们可以帮我调试我的代码吗?
答案 0 :(得分:2)
nb:你的一个标签打开“网站”并尝试关闭“网站” - 所以你要修复那个......
您已经提到lxml
。
from lxml import etree as et
root = et.fromstring(xml)
fun = root.xpath('/Website/url[@category="fun"]')
for node in fun:
print et.tostring(node)
答案 1 :(得分:0)
使用getAttribute
:
for n in dom.getElementsByTagName('url'):
if (n.getAttribute('category') == "fun"):
print(n.toxml())