在python中使用lxml解析标记中的XML数据

在python中使用lxml解析标记中的XML数据,python,xml,lxml,xml.etree,Python,Xml,Lxml,Xml.etree,我的问题是关于如何获取存储在不允许结束标记的标记中的信息。以下是相关的xml: <?xml version="1.0" encoding="UTF-8"?> <uws:job> <uws:results> <uws:result id="2014-03-03T15:42:31:1337" xlink:href="http://www.cosmosim.org/query/index/stream/table/2014-03-03T15%3A4

我的问题是关于如何获取存储在不允许结束标记的标记中的信息。以下是相关的xml:

<?xml version="1.0" encoding="UTF-8"?>
<uws:job>  
<uws:results>
    <uws:result id="2014-03-03T15:42:31:1337" xlink:href="http://www.cosmosim.org/query/index/stream/table/2014-03-03T15%3A42%3A31%3A1337/format/csv" xlink:type="simple"/>
</uws:results>
</uws:job>
其中xmlresponse.content是要解析的xml数据。这是什么回报

'\n    '

这表明它只查找换行符,因为我真正想要的是包含在results标记内的标记中。任何想法都将不胜感激。

您找到了正确的节点;您提取的数据不正确。而不是

url = root.find('{*}results').text
你真的想要吗

url = root.find('{*}results').get('attribname', 'value_to_return_if_not_present')

(如果不存在,将抛出异常)

由于属性本身的名称空间,您可能还需要使用
{ns}attrib
语法来查找它

您可以转储attrib字典,也可以复制属性名


text
实际上是元素之间的空格,通常不使用,但在空格(如etreeindent)和一些特殊情况下都支持。

提供xml的第一行xml声明。添加了声明语句。
url = root.find('{*}results').get('attribname', 'value_to_return_if_not_present')
url = root.find('{*}results').attrib['attribname']