Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 逐行读取XML文件中的数据_Python - Fatal编程技术网

Python 逐行读取XML文件中的数据

Python 逐行读取XML文件中的数据,python,Python,我试图找到一个包含http或//或\的链接,一旦找到该链接,就会用href标记环绕,但在逐行读取从xml读取的数据时..我看到输出与每个字母分开..请查看下面的输入和输出..有人能告诉我哪里出错了吗 INput:-http://pastebin.com/p9H8GQt4 Currentoutput:- http://pastebin.com/7428jK63 sanity_results = sanity_results.replace('\n','<br>\n') retur

我试图找到一个包含http或//或\的链接,一旦找到该链接,就会用href标记环绕,但在逐行读取从xml读取的数据时..我看到输出与每个字母分开..请查看下面的输入和输出..有人能告诉我哪里出错了吗

 INput:-http://pastebin.com/p9H8GQt4
 Currentoutput:- http://pastebin.com/7428jK63

sanity_results = sanity_results.replace('\n','<br>\n')
return sanity_results

def main ():
resultslis=[]
xmlfile = open('results.xml','r')
contents = xmlfile.read()
testresults=getsanityresults(contents)
#print testresults
for line in testresults:
    #print line
    line = line.strip()
    #print line
    line = re.sub(r'(http://[^\s]+|//[^\s]+|\\\\[^\s]+)', r'<a href="\1">\1</a>', line)
    print line       
    resultslis.append(line)
print resultslis

if __name__ == '__main__':
main()
输入:-http://pastebin.com/p9H8GQt4
电流输出:-http://pastebin.com/7428jK63
健全结果=健全结果。替换('\n','
\n') 返回健全的结果 defmain(): 结果LIS=[] xmlfile=open('results.xml','r') contents=xmlfile.read() testresults=getsanityresults(目录) #打印测试结果 对于测试结果中的行: #打印行 line=line.strip() #打印行 line=re.sub(r'(http://[^\s]+\/[^\s]+\\\\\[^\s]+)',r'',第行) 打印行 结果列表追加(第行) 打印结果列表 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': main()
您想使用XML解析器,如

  • 元素树
  • lxml
  • 小型
用于解析任何类型的XML文件。自己解析XML——尤其是逐行解析XML——容易出错。特别是正则表达式的使用被设计打破了。不要那样做


聪明一点,改用XML解析器。

您想使用像这样的XML解析器吗

  • 元素树
  • lxml
  • 小型
用于解析任何类型的XML文件。自己解析XML——尤其是逐行解析XML——容易出错。特别是正则表达式的使用被设计打破了。不要那样做


聪明点,改用XML解析器。

您是在字符串上迭代,而不是在文件上迭代

如果要迭代字符串中的行,请使用
str.splitlines

>>> text ='''first
... second
... '''
>>> for line in text.splitlines():
...     print(line)
... 
first
second
>>> for char in text:
...     print(char)
... 
f
i
r
s
t


s
e
c
o
n
d

无论如何,我建议您使用XML解析器。
stdlib
已经提供了一个库,周围还有很多附加库。

您是在字符串上迭代,而不是在文件上迭代

如果要迭代字符串中的行,请使用
str.splitlines

>>> text ='''first
... second
... '''
>>> for line in text.splitlines():
...     print(line)
... 
first
second
>>> for char in text:
...     print(char)
... 
f
i
r
s
t


s
e
c
o
n
d

无论如何,我建议您使用XML解析器。
stdlib
已经提供了一个库,而且周围还有很多附加库。

问题在于行:

contents = xmlfile.read()

返回一个字符串;因此,迭代对字符进行操作。将read()替换为readlines(),您就得到了预期的行。

问题在于行:

contents = xmlfile.read()

返回一个字符串;因此,迭代对字符进行操作。将read()替换为readlines(),您就有了预期的行。

为什么不使用xml解析器?为什么不使用xml解析器?问题是关于逐行阅读。。如果你不知道答案,请不要因为不回答而浪费人们的时间问题是关于逐行阅读的。。如果你不知道答案,请不要因为不回答而浪费别人的时间。。