我正在尝试使用Python解析Xml文件。我的文件结构类似于下面的结构:
<dataset>
<dataTable id = 123>
<name> Name1 </name>
<attributeList>
<attribute id = 1>
<measurement>
<textDomain>
<definition>User defined. </definition>
</textDomain>
</measurement>
</attribute>
<attribute id = 2>
<measurement>
<dateTime>
<formatString>MM-YYYY </formatString>
</dateTime>
</measurement>
</attribute>
</attributeList>
</dataTable>
<dataTable id = 456>
<name> Name8 </name>
<attributeList>
<attribute id = 3>
<measurement>
<unit>
<standardUnit>degree</standardUnit>
</unit>
</measurement>
</attribute>
</attributeList>
</dataTable>
</dataset>
我想在<measurement>
代码中提取文字(&#34;用户定义。&#34;,&#34; MM-YYYY&#34;,&#34;度&#34;) 。 <measurement>
标记针对每个<attribute>
具有不同的后代。在这种情况下如何提取文本?
提前谢谢!
答案 0 :(得分:0)
您可以使用通配符来获取 measurement 标记的子项以及该子项的任何子项:
import lxml.etree as et
xml = et.parse("in.xml")
print(xml.xpath("//attributeList//measurement/*/*/text()"))
这给了你:
['User defined.', 'MM-YYYY ', 'degree']
你可以明确地拉第一个孩子:
xml.xpath("//attributeList//measurement/*[1]/*[1]/text()")
但事实上,只有一个孩子不会有任何不同。