检索 xml 中多个 <br> 与 python 之间的文本
Retrieve text between multiple <br> in xml with python
你好,
我有 xml 个文件组成如下,我想检索 text1、text2、text3 和 text4。
<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
我在 ElementTree 文档中被困了好几天都没有找到解决方案。我有以下代码,但由于 <br/>
,我只得到第一个文本。此外 <br/>
的数量从一个文件到另一个文件是可变的..
import xml.etree.ElementTree as ET
tree = ET.parse(file.xml))
root = tree.getroot()
for txt in root.iter('CONTENU'):
print(txt)
>>> text1
我该怎么做?提前致谢:)
尝试使用tail
而不是text
来获取关闭标签后的内容:
import xml.etree.ElementTree as ET
XML = """<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
"""
root = ET.fromstring(XML)
for txt in root.iter('CONTENU'):
print(txt.text)
for c in txt.iter():
print(c.tail)
输出:
text1
text2
text3
text4
另一种方法。
from simplified_scrapy import SimplifiedDoc,utils,req
html = '''
<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
'''
doc = SimplifiedDoc(html)
texts = doc.select('CONTENU').getText(separator="|").split('|')
print (texts)
你好,
我有 xml 个文件组成如下,我想检索 text1、text2、text3 和 text4。
<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
我在 ElementTree 文档中被困了好几天都没有找到解决方案。我有以下代码,但由于 <br/>
,我只得到第一个文本。此外 <br/>
的数量从一个文件到另一个文件是可变的..
import xml.etree.ElementTree as ET
tree = ET.parse(file.xml))
root = tree.getroot()
for txt in root.iter('CONTENU'):
print(txt)
>>> text1
我该怎么做?提前致谢:)
尝试使用tail
而不是text
来获取关闭标签后的内容:
import xml.etree.ElementTree as ET
XML = """<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
"""
root = ET.fromstring(XML)
for txt in root.iter('CONTENU'):
print(txt.text)
for c in txt.iter():
print(c.tail)
输出:
text1
text2
text3
text4
另一种方法。
from simplified_scrapy import SimplifiedDoc,utils,req
html = '''
<?xml version="1.0" encoding="UTF-8"?>
<TABLE>
<MAIN>
<CONTENU>
text1 <br/> text2 <br/> text3 <br/> text4
</CONTENU>
</MAIN>
</TABLE>
'''
doc = SimplifiedDoc(html)
texts = doc.select('CONTENU').getText(separator="|").split('|')
print (texts)