这里是新人!
任何人都可以帮我提取 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>
您可以将 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')
]))
]))
]))
])
从本词典中,您可以通过以下方式访问示例标题:
data['w:p']['w:r']['w:t']['#text']