【发布时间】:2017-08-02 05:03:35
【问题描述】:
我需要获得一些价值,例如
- w:val="FFFF00"
- w:val="28"
- 声明词
来自xml文件,请帮我写代码
我已经尝试过这段代码
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>
【问题讨论】:
-
<w:color>不是根的子元素,所以需要提供路径,例如tree.findall('.//w:color', ns)在文档中的任意位置查找w:color。 -
好的,可以直接找到w:color
-
使用我上面描述的路径。注意:
ws:color没有text,也许你的意思是得到attribs。 -
无需添加根元素即可提取任意属性值
-
@AChampion 我试过了,但效果很好
标签: python xml xml-namespaces elementtree