尝试将XML从字符串解析为Python

时间:2015-06-30 15:04:58

标签: python xml

首先是字符串

my $json = to_json({"Friends" => \@loop_data});

我要提取的是'<?xml version="1.0" encoding="UTF-8"?><metalink version="3.0" xmlns="http://www.metalinker.org/" xmlns:lcgdm="LCGDM:" generator="lcgdm-dav" pubdate="Fri, 11 Oct 2013 12:46:10 GMT"><files><file name="/lhcb/L"><size>173272912</size><resources><url type="https">https://test-kit.test.de:2880/pnfs/test.file</url><url type="https">https://test.grid.sara.nl:2882/pnfs/test.file</url></resources></file></files></metalink>' 文字。以下代码有效但有缺陷,因为它的硬编码:

url

所以这只适用于xml结构相同的情况。我尝试使用xpath,但我从来没有使用它或使用标签。我从来没有得到任何结果。

是xml字符串格式的问题还是我做错了?

2 个答案:

答案 0 :(得分:3)

您可以使用xpath(以及findall的{​​{1}}函数)来获取网址,但由于您已将Node用于根元素,因此您需要使用xmlns="http://www.metalinker.org/" 1}}也在xmlns

示例 -

xpath

上面的xpath将找到xml中的所有url。

答案 1 :(得分:3)

您使用了名称空间,因此您需要在XPath中使用它们:

for entry in root.findall('.//{http://www.metalinker.org/}url'):
    print entry.text
相关问题