如何在python中根据xml标签获取文本?
Posted
技术标签:
【中文标题】如何在python中根据xml标签获取文本?【英文标题】:How to get the text based on xml tags in python? 【发布时间】:2021-03-18 12:42:41 【问题描述】:这里是新手!
谁能帮我提取 XML 标记之间的文本 SAMPLE HEADING?还有一种方法可以根据 XML 标签中的标题 1 到标题 6 提取文本吗?如果是,如何考虑? 下面是它的 XML 代码:
<w:p w:rsidR="00000000" w:rsidDel="00000000" w:rsidP="00000000" w:rsidRDefault="00000000" w:rsidRPr="00000000" w14:paraId="00000033">
<w:pPr>
<w:pStyle w:val="Heading2"/>
<w:numPr>
<w:ilvl w:val="0"/>
<w:numId w:val="1"/>
</w:numPr>
<w:ind w:left="520" w:hanging="360"/>
<w:rPr>
<w:b w:val="1"/>
<w:color w:val="000000"/>
</w:rPr>
</w:pPr>
<w:r w:rsidDel="00000000" w:rsidR="00000000" w:rsidRPr="00000000">
<w:rPr>
<w:b w:val="1"/>
<w:color w:val="000000"/>
<w:rtl w:val="0"/>
</w:rPr>
<w:t xml:space="preserve">SAMPLE HEADING</w:t>
</w:r>
</w:p>
【问题讨论】:
【参考方案1】:您可以将 XML 文件作为字典读取,然后您可以根据 XML 文件的元素解析字典。
作为示例:
import xmltodict
with open('file.xml') as xml:
data = xmltodict.parse(xml_file.read())
xml_file.close()
这将从您的 XML 文件中生成一个有序字典:
OrderedDict([('w:p',
OrderedDict([('@w:rsidR', '00000000'),
('@w:rsidDel', '00000000'),
('@w:rsidP', '00000000'),
('@w:rsidRDefault', '00000000'),
('@w:rsidRPr', '00000000'),
('@w14:paraId', '00000033'),
('w:pPr',
OrderedDict([('w:pStyle',
OrderedDict([('@w:val',
'Heading2')])),
('w:numPr',
OrderedDict([('w:ilvl',
OrderedDict([('@w:val',
'0')])),
('w:numId',
OrderedDict([('@w:val',
'1')]))])),
('w:ind',
OrderedDict([('@w:left', '520'),
('@w:hanging', '360')])),
('w:rPr',
OrderedDict([('w:b',
OrderedDict([('@w:val',
'1')])),
('w:color',
OrderedDict([('@w:val',
'000000')]))]))])),
('w:r',
OrderedDict([('@w:rsidDel', '00000000'),
('@w:rsidR', '00000000'),
('@w:rsidRPr', '00000000'),
('w:rPr',
OrderedDict([('w:b',
OrderedDict([('@w:val',
'1')])),
('w:color',
OrderedDict([('@w:val',
'000000')])),
('w:rtl',
OrderedDict([('@w:val',
'0')]))])),
('w:t',
OrderedDict([('@xml:space',
'preserve'),
('#text',
'SAMPLE '
'HEADING')]))]))]))])
从这本词典中,您可以通过以下方式访问 SAMPLE HEADING:
data['w:p']['w:r']['w:t']['#text']
【讨论】:
以上是关于如何在python中根据xml标签获取文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据单元格文本获取 UICollectionViewCell 的 indexPath?
如何通过 Selenium 和 Python 从 html 标签跨度获取文本