从字符串中隔离xml的问题

时间:2017-07-27 07:40:04

标签: python xml python-3.x

在我的python脚本中,我正在努力使用xml文件。我正在使用urllib下载xml文件并将它们转换为字符串。接下来,我想解析xml文件。

Sample link of a typical file

import urllib
data = urllib.request.urlopen(link).read() 
data = str(data)
data2 = data.replace('\n', '')

我想删除\ n的数据,但是数据2没有删除\ n字符,数据2的示例输出如下所示:

SwapInvolved>\n </transactionCoding>\n <transactionTimeliness>\n <value></value>\n

为什么?

另外,由于我提取的文件是xml,我想通过ElementTree解析它,但是我收到错误。

e = xml.etree.ElementTree.parse(data).getroot()
  

OSError:[Errno 36]文件名太长:

最后,我想要链接中的xml并解析它。我做错了。

1 个答案:

答案 0 :(得分:0)

您的第一个问题是,您需要转义'\n'中的string.replace(),因为您的字符串包含\n的文字序列。您的代码正在寻找换行,但您的数据包含换行符的字符串表示

请改为:data2 = data.replace(r"\n","")

你的第二个问题是xml.etree.ElementTree.parse()期待文件名,而不是字符串。请改用xml.etree.ElementTree.fromstring()