0

私はこれから著者を抽出しようとしています:

<icon>
    <tags>
        <tag>steam</tag>
    </tags>
    <author>Author Name</author>
    <authorwebsite>http://www.domain.com/</authorwebsite>
    <license>
        Creative Commons (Attribution-Noncommercial-Share Alike 3.0 Unported)
    </license>
    <licensewebsite>http://creativecommons.org/licenses/by-nc-sa/3.0/</licensewebsite>
    <iconset>Name</iconset>
    <iconsetid>slug</iconsetid>
    <attribution/>
    <additionalsizes>
        <icon>
            <id>99633</id>
            <size>128</size>
            <tags/>
            <image>
                http://url1
            </image>
        </icon>
        <icon>
            <id>99633</id>
            <size>256</size>
            <tags/>
            <image>
                http://url2
            </image>
        </icon>
        <icon>
            <id>99633</id>
            <size>512</size>
            <tags/>
            <image>
                http://url3
            </image>
        </icon>
    </additionalsizes>
</icon>

私は試した:

name = dom.getElementsByTagName('author')
print name[0].firstChild.nodeValue

AttributeError:'NoneType'オブジェクトに属性'nodeValue'がありません

と:

name = dom.getElementsByTagName('author')
print " ".join(t.nodeValue for t in name[0].childNodes if t.nodeType == t.TEXT_NODE)

空の文字列を返します。

どうしたの?ありがとう。

4

3 に答える 3

2

@Martijn Pietersによって提案されたように、ElementTreeを使用します。

from xml.etree import ElementTree
tree = ElementTree.fromstring('<icon><author>Author Name</author></icon>')
print tree.find('author').text

その他の例: http: //www.doughellmann.com/PyMOTW/xml/etree/ElementTree/parse.html

于 2013-02-07T21:59:55.217 に答える
2

アイコンタグの中から作者を取得するのを忘れました

from xml.dom.minidom import parse
dom = parse('test.xml')
icon = dom.getElementsByTagName('icon')[0]
author = icon.getElementsByTagName('author')[0]
print author.firstChild.nodeValue
于 2013-02-07T22:01:35.867 に答える
1

lxmlで簡単に:

from lxml import etree
dom=etree.fromstring(XML_DOC)
dom.xpath('/icon/author/text()')[0]

'作成者名'を返します

于 2013-02-07T22:03:10.853 に答える