Python 使用etree查找xml中的节点值

Python 使用etree查找xml中的节点值,python,xml,xml-parsing,lxml,elementtree,Python,Xml,Xml Parsing,Lxml,Elementtree,下面是xml <organizations> <organization> <orgID>152</orgID> <orgName>This is A</orgName> </organization> <organization> <orgID>1352</orgID> <orgName&g

下面是
xml

<organizations>
    <organization>
        <orgID>152</orgID>
        <orgName>This is A</orgName>
    </organization>
<organization>
        <orgID>1352</orgID>
        <orgName>This is B</orgName>
    </organization>
    <organization>
        <orgID>1522</orgID>
        <orgName>This is C</orgName>
    </organization>
    <organization>
        <orgID>1512</orgID>
        <orgName>This is D</orgName>
    </organization>
</organizations>
但没有任何指纹


我在这里做错了什么?

一个选项是检查后代的文本:

from lxml import etree as ET


data = """<organizations>
    <organization>
        <orgID>152</orgID>
        <orgName>This is A</orgName>
    </organization>
<organization>
        <orgID>1352</orgID>
        <orgName>This is B</orgName>
    </organization>
    <organization>
        <orgID>1522</orgID>
        <orgName>This is C</orgName>
    </organization>
    <organization>
        <orgID>1512</orgID>
        <orgName>This is D</orgName>
    </organization>
</organizations>"""

tree = ET.fromstring(data)
print tree.xpath('//organization[descendant::text()="1512"]/orgName/text()')

如果我使用问题中提供的内容作为
xmldata
,它会打印如下内容:


也许你应该检查url是否真的提供了内容

顺便说一句,如果要打印
orgName
的文本,请将
for
语句更改如下:

for target in root.xpath('.//organization/orgID[text()="152"]/following-sibling::orgName/text()'):
    print target
['This is D']
for target in root.xpath('.//organization/orgID[text()="152"]/following-sibling::orgName/text()'):
    print target