使用lxml从具有给定值的父项的子项中获取值

用户名

我是不熟悉将lxml与python结合使用的方法,并且在解析和xml文件时遇到了麻烦。我四处搜寻,似乎找不到任何能很好解释这一点的东西。我需要做的是遍历具有固定值的父项下面的子元素。

例如:我需要遍历名称为“ variable”的所有元素,但仅在ID =“ VTBRA”的站下面。

<station id="VTBRA" name="RT 7 Brandon" elev="407" lat="43.76728" lon="-73.05017" distance="" provider="VTRANS">

<ob time="16 Feb 7:30 am EST">
<variable var="T" description="Temp" unit="F" value="9"/>
<variable var="RH" description="Relh" unit="%" value="81"/>
<variable var="FF" description="Wind" unit="mph" value="1"/>
<variable var="DD" description="Direction" unit="deg" value="85"/>
<variable var="DDCARD" description="Wind Card" unit="direction" value="E"/>
<variable var="FFGUST" description="Gust" unit="mph" value="4"/>
<variable var="VV" description="Visibility" unit="miles" value="3.68"/>
<variable var="STAQUAL" description="Station Quality" unit="" value="OK"/>

我目前正在修改这样的代码片段:

对于node.getiterator('station')中的elt:provider = elt.get('provider','Unknown')

 for  elt in node.getiterator('variable'):
      if elt.get('var', 'Unknown') == "T":
          print elt.get('value','Unknown')

此代码在工作站内部和外部的id为“ VTBRA”的“变量”的所有实例之间循环。是否有一个参数或可以添加的东西来使迭代器仅循环遍历所选站号下方的变量标签?还是我应该完全是一个不同的职能?

任何帮助深表感谢!谢谢!

比雷

您可以使用xpath()函数选择as<station>元素并遍历其所有元素,例如:VTBRAid<variable>

from lxml import etree
import sys

tree = etree.parse(sys.argv[1])
for v in tree.xpath('//station[@id="VTBRA"]//variable'):
    ## Do whatever you want with each "variable" element. In this case I print its
    ## "var" attribute.
    print(v.get('var'))

像这样运行它:

python3 script.py xmlfile

得出结果(修复了格式不正确的xml数据后):

T
RH
FF
DD
DDCARD
FFGUST
VV
STAQUAL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用lxml从父项具有给定值的子项中获取值

来自分类Dev

获取不包含具有属性值的子项的父项

来自分类Dev

在MySQL / MariaDB关系表中获取给定父节点的所有子项(及其子项)

来自分类Dev

确定被点击项的父项是否具有 jQuery 中特定类型的子项

来自分类Dev

使用Nokogiri根据子项的值提取父项属性的值

来自分类Dev

获取所有子项(数量)小于父项(数量)的记录

来自分类Dev

从具有特定属性值的对象中获取值

来自分类Dev

使用 Linq 从具有逗号分隔值的列中获取值

来自分类Dev

在Javascript中获取子项到父项的索引

来自分类Dev

在Javascript中获取子项到父项的索引

来自分类Dev

在Angular中将子项中的数据从子项传递给具有n个子项的父项,而不会沿途发射每个组件

来自分类Dev

在CoreData中从子项修改父项属性值

来自分类Dev

在层次结构查询中在父项上显示子项值

来自分类Dev

Ruby on Rails模型子项中父项的验证值

来自分类Dev

SQL-如何在自引用表中获取给定值的顶级父项

来自分类Dev

XSLT在Match LXML Python中获取父项

来自分类Dev

使用EXISTS来获取给定列中具有最大值的行

来自分类Dev

当使用 JPA Hibernate 将子项和父项存储在同一个表中时,在当前和所有连续父项中使用提供的值进行搜索

来自分类Dev

从具有子父关系的列表开始,以子项作为列表创建父项

来自分类Dev

从具有给定属性和值的xml中提取值,然后获取另一个属性的值

来自分类Dev

在子项中获取父指令

来自分类Dev

查询返回没有子项的父项

来自分类Dev

Firebase 子项没有被移除,父项是

来自分类Dev

Pyspark - 从具有最小值和最大值范围的数组中获取值

来自分类Dev

将类添加到具有特定子项的父项

来自分类Dev

从数组中查找父项和子项

来自分类Dev

从另一列中具有不同值的列中获取值

来自分类Dev

如何从在 forEach 中创建的具有不同值的隐藏字段中获取值?

来自分类Dev

如何使用sql server在XML文档中获取包含具有给定属性值的子节点的节点?

Related 相关文章

  1. 1

    使用lxml从父项具有给定值的子项中获取值

  2. 2

    获取不包含具有属性值的子项的父项

  3. 3

    在MySQL / MariaDB关系表中获取给定父节点的所有子项(及其子项)

  4. 4

    确定被点击项的父项是否具有 jQuery 中特定类型的子项

  5. 5

    使用Nokogiri根据子项的值提取父项属性的值

  6. 6

    获取所有子项(数量)小于父项(数量)的记录

  7. 7

    从具有特定属性值的对象中获取值

  8. 8

    使用 Linq 从具有逗号分隔值的列中获取值

  9. 9

    在Javascript中获取子项到父项的索引

  10. 10

    在Javascript中获取子项到父项的索引

  11. 11

    在Angular中将子项中的数据从子项传递给具有n个子项的父项,而不会沿途发射每个组件

  12. 12

    在CoreData中从子项修改父项属性值

  13. 13

    在层次结构查询中在父项上显示子项值

  14. 14

    Ruby on Rails模型子项中父项的验证值

  15. 15

    SQL-如何在自引用表中获取给定值的顶级父项

  16. 16

    XSLT在Match LXML Python中获取父项

  17. 17

    使用EXISTS来获取给定列中具有最大值的行

  18. 18

    当使用 JPA Hibernate 将子项和父项存储在同一个表中时,在当前和所有连续父项中使用提供的值进行搜索

  19. 19

    从具有子父关系的列表开始,以子项作为列表创建父项

  20. 20

    从具有给定属性和值的xml中提取值,然后获取另一个属性的值

  21. 21

    在子项中获取父指令

  22. 22

    查询返回没有子项的父项

  23. 23

    Firebase 子项没有被移除,父项是

  24. 24

    Pyspark - 从具有最小值和最大值范围的数组中获取值

  25. 25

    将类添加到具有特定子项的父项

  26. 26

    从数组中查找父项和子项

  27. 27

    从另一列中具有不同值的列中获取值

  28. 28

    如何从在 forEach 中创建的具有不同值的隐藏字段中获取值?

  29. 29

    如何使用sql server在XML文档中获取包含具有给定属性值的子节点的节点?

热门标签

归档