1

DOMを使用してxmlファイルを読み取り、特定の選択された属性「楽しい」を持つ1つのノードのみからリストされた別のxml構造を出力するpythonプログラムを作成しようとしています。

<?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

注意: タグの 1 つが「Web サイト」を開き、「Web サイト」を閉じようとしています。そのタグを修正する必要があります...

あなたは言及しまし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 に答える