1

我正在尝试编写一个 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" 的 URL 中选择列表。

我试过这段代码:

for n in dom.getElementsByTagName('url'):
    s = n.attribute['category'] 
    if (s.value == "fun"):
        print n.toxml()

你们能帮我调试我的代码吗?

4

2 回答 2

2

注意:您的标签之一打开“网站”并尝试关闭“网站” - 所以您需要修复那个...

你提到过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)
于 2012-09-29T10:56:34.683 回答
0

使用getAttribute

for n in dom.getElementsByTagName('url'):
    if (n.getAttribute('category') == "fun"):
        print(n.toxml())
于 2012-09-29T10:55:53.830 回答