我需要获得一些价值,例如
请帮我解决代码
我试过这段代码
import xml.etree.ElementTree as ET
tree = ET.parse('document.xml')
# root = tree.getroot()
ns={'w':'http://schemas.openxmlformats.org/wordprocessingml/2006/main'}
for char in tree.findall('w:color',ns):
print(' |-->', char.text)
请帮我解释代码如何在python中使用xml命名空间来获取值
这是XML代码: -
<w:tc>
<w:tcPr>
<w:tcW w:w="1502" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidP="00065164" w:rsidRDefault="006F598E" w:rsidRPr="009D1FCD" w:rsidR="006F598E">
<w:pPr>
<w:autoSpaceDE w:val="0"/>
<w:autoSpaceDN w:val="0"/>
<w:adjustRightInd w:val="0"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi"/>
<w:b/>
<w:color w:val="FFFF00"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="009D1FCD">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi"/>
<w:b/>
<w:color w:val="FFFF00"/>
</w:rPr>
<w:t>YEAR</w:t>
</w:r>
</w:p>
</w:tc>
<w:p w:rsidP="00443849" w:rsidRDefault="00104308" w:rsidRPr="00383A2A" w:rsidR="00104308">
<w:pPr>
<w:pStyle w:val="NoSpacing"/>
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi"/>
<w:b/>
<w:sz w:val="28"/>
<w:szCs w:val="28"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00383A2A">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi"/>
<w:b/>
<w:sz w:val="28"/>
<w:szCs w:val="28"/>
</w:rPr>
<w:t>Declaration:</w:t>
</w:r>
</w:p>
答案 0 :(得分:0)
也可以使用xml.dom
模块提取数据。
这是代码:
from xml.dom import expatbuilder
document = expatbuilder.parse("sample.xml", False)
node = document.getElementsByTagName('w:p')
for i in node:
color_list = i.getElementsByTagName('w:color')
wvalue_data = [d.getAttribute('w:val') for d in color_list ]
if wvalue_data:
print "color w:val :" , wvalue_data
desc_list = i.getElementsByTagName('w:t')
print "desc :" ,[node.firstChild.data for node in desc_list]
wsz_data = i.getElementsByTagName('w:sz')
value_data = [data.getAttribute('w:val') for data in wsz_data ]
if value_data:
print "w:sz_value :" , value_data
输出如下:
color w:val : [u'FFFF00', u'FFFF00']
desc : [u'YEAR']
desc : [u'Declaration:']
w:sz_value : [u'28', u'28']
希望它有用。