BeautifulSoup XML只有打印的第一行 [英] BeautifulSoup XML Only printing first line

查看:118
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆