使用lxml从xml文件中获取节点名称

时间:2013-10-15 11:56:49

标签: python xpath lxml elementtree

我有一个xml文件,其结构如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<root>

<Validity>
  <OneValidity a=1>----</OneValidity>
  <OneValidity a=2>----</OneValidity>
</Validity>

<ValidityLine>
  <OneValidityLinea a=1>----</OneValidityLine>
  <OneValidityLinea a=2>----</OneValidityLine>      
</ValidityLine>

</root>

我想使用python和lxml库返回父节点名:ValidityValidityLine

2 个答案:

答案 0 :(得分:1)

from lxml import etree

tree = etree.parse("file.xml")
root = tree.getroot()
validityLst = root.xpath('Validity')
validityLineLst = root.xpath('ValidityLine')

答案 1 :(得分:0)

多年后找到了这个答案,并想对我认为OP提出的问题(以及从Google带到我这里的问题)提供更简洁的答案:

from lxml import etree

# Parse file and get root node
tree = etree.parse("file.xml")
root = tree.getroot()

# Access root node name
name = root.tag

注意:tag属性提供当前节点的名称。