【发布时间】:2016-05-07 04:39:04
【问题描述】:
我正在尝试解析在 XML 中嵌入或包含 html 的大文件。我已经能够提取主 xml 的全部内容,但我无法访问嵌入的 html 的内容。
例如,我会有一个这样结构的文件:
<TitleContentExtra>Part 1</TitleContentExtra><SubTitle /><TitleOriginal /><Abstract /><FullText>
<p><strong class="grey" id="authordate"> <span class="gray pointer">Argh, <em>et al.</em> 2001 [+] </span></strong></p>
<div class="bkg_gray" id="authordate2_container" style="display: none;">
<p>It is a big product [some_product]:[bib2bib]</p>
<ul class="ul_style_1">
<li>More text goes here </li>
<li>Why do I have to do it? <strong class="gray">Some text goes there</strong> </li>
</FullText><FullTextOriginal /><FullTextComment>
<ol class="ol_style_3" id="notes_container">
<li><span id="note_a"><a name="notea"></a>Extra information here.</span></li>
</FullTextComment>
我在 Python 3 中的代码是这样的:
try:
from lxml import etree as ET
except ImportError:
import xml.etree.ElementTree as ET
tree = ET.ElementTree(file='Files\\xml_File.xml')
root = tree.getroot()
for child in root:
print (child.tag, child.attrib)
print ('\n------------------\n')
for elem in tree.iter():
#print (elem.tag, 'atrribute: ', elem.attrib)
for value in elem.getiterator(tag=elem.tag):
#print (value.text)
extags=str(value.text)
try:
xmldata=ET.fromstring(extags)
print (xmldata.tags)
except:
print ('There is an error: :', extags)
我无法解析嵌入的 html/xml 文本。我已经尝试了很多关于soupparser、parse、...的选项,但没有一个可以工作,或者我无法让它们工作。
我需要解析整个 xml 文件,以便稍后获取所有标签和属性的列表,以便进一步处理它们。
【问题讨论】:
标签: python html xml xml-parsing lxml