BeautifulSoup XML只有打印的第一行 [英] BeautifulSoup XML Only printing first line
本文介绍了BeautifulSoup XML只有打印的第一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用BeautifulSoup4(和LXML)来解析XML文件,由于某种原因,当我打印汤prettify()只打印第一行:
从BS4进口BeautifulSoupF =开放('xmlDoc.xml,R)汤= BeautifulSoup(F,'XML')打印汤。prettify()#>>> < XML版本=1.0编码=UTF-8&GT?;
任何想法,为什么它没有抓住一切吗?
更新:
<?XML版本=1.0编码=UTF-8独立=YES&GT?;<! - 数据结生成的文件。
宏类型1000被保留。 - >
< djmacros>
<宏名称=测试TYPE =5000值=TestValue>
<描述>测试与LT; /描述>
< /微距>
<宏名称=AnotherTestTYPE =0值=TestValue2/>
<宏名称=TestLocationTYPE =1000值=C:\\ RandomLocation>
<描述> < /描述>
< /微距>
< djmacros>
解决方案
文件位置在EOF:
>>>汤= BeautifulSoup(,xml的')
>>>汤。prettify()
'< XML版本=1.0编码=UTF-8> \\ N'
或内容不是有效的XML:
>>>汤= BeautifulSoup(否下;根/>元素,'XML')
>>>汤。prettify()
'< XML版本=1.0编码=UTF-8> \\ N'
I'm using BeautifulSoup4 (And lxml) to parse an XML file, for some reason when I print soup.prettify() it only prints the first line:
from bs4 import BeautifulSoup
f = open('xmlDoc.xml', "r")
soup = BeautifulSoup(f, 'xml')
print soup.prettify()
#>>> <?xml version="1.0" encoding="utf-8"?>
Any idea why it's not grabbing everything?
UPDATE:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Data Junction generated file.
Macro type "1000" is reserved. -->
<djmacros>
<macro name="Test" type="5000" value="TestValue">
<description>test</description>
</macro>
<macro name="AnotherTest" type="0" value="TestValue2"/>
<macro name="TestLocation" type="1000" value="C:\RandomLocation">
<description> </description>
</macro>
<djmacros>
解决方案
The file position is at EOF:
>>> soup = BeautifulSoup("", 'xml')
>>> soup.prettify()
'<?xml version="1.0" encoding="utf-8">\n'
Or the content is not valid xml:
>>> soup = BeautifulSoup("no <root/> element", 'xml')
>>> soup.prettify()
'<?xml version="1.0" encoding="utf-8">\n'
这篇关于BeautifulSoup XML只有打印的第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文