使用Python从xml中的一个节点遍历到另一个

pe

我对使用Python的XML非常陌生,并且从网络设备获得以下XML字符串作为响应:

'<Response MajorVersion="1" MinorVersion="0"><Get><Configuration><OSPF MajorVersion="19" MinorVersion="2"><ProcessTable><Process><Naming><ProcessName>1</ProcessName></Naming><DefaultVRF><AreaTable><Area><Naming><AreaID>0</AreaID></Naming><Running>true</Running><NameScopeTable><NameScope><Naming><InterfaceName>Loopback0</InterfaceName></Naming><Running>true</Running><Cost>1000</Cost></NameScope><NameScope><Naming><InterfaceName>Loopback1</InterfaceName></Naming><Running>true</Running><Cost>1</Cost></NameScope><NameScope><Naming><InterfaceName>GigabitEthernet0/0/0/0</InterfaceName></Naming><Running>true</Running><Cost>1</Cost></NameScope></NameScopeTable></Area></AreaTable></DefaultVRF><Start>true</Start></Process></ProcessTable></OSPF></Configuration></Get><ResultSummary ErrorCount="0" /></Response>'

我有以下代码来检索接口信息以及与之相关的接口成本。但是,我也想将与每个接口关联的'AreaID'标签作为字典的一部分。无法正确导航树以检索AreaID标记值:

for node in x.iter('NameScope'):
int_name = str(node.find('Naming/InterfaceName').text)
d[int_name] = {}
d[int_name]['cost'] = str(node.find('Cost').text)

打印“ d”时,此代码提供以下输出:

{'GigabitEthernet0/0/0/0': {'cost': '1'},
 'Loopback0': {'cost': '1000'},
 'Loopback1': {'cost': '1'}}

我想要在输出中这样的事情:

{'GigabitEthernet0/0/0/0': {'cost': '1', 'area': 0},
 'Loopback0': {'cost': '1000', 'area': 0},
 'Loopback1': {'cost': '1', 'area': 0}}

对我的代码的任何建议或修改将不胜感激!

ec

我会用这样的preceding符号:

node.xpath(".//preceding::AreaID")[0].text

我正在执行的完整代码:

from lxml import etree as ET

x = ET.parse("input.xml")
d = {}
for node in x.iter('NameScope'):
    int_name = str(node.find('Naming/InterfaceName').text)
    d[int_name] = {
        'cost': str(node.find('Cost').text),
        'area': node.xpath(".//preceding::AreaID")[0].text 
    }

print(d)

印刷:

{
    'Loopback0': {'cost': '1000', 'area': '0'}, 
    'Loopback1': {'cost': '1', 'area': '0'}, 
    'GigabitEthernet0/0/0/0': {'cost': '1', 'area': '0'}
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中将多个XML节点复制到另一个文件

来自分类Dev

如何在Python中将多个XML节点复制到另一个文件

来自分类Dev

使用Java读取XML中另一个节点内的节点

来自分类Dev

根据python xpath中另一个的值选择xml节点

来自分类Dev

Neo4j - 从一个节点遍历到另一个由父节点间接连接的节点

来自分类Dev

在Python中从一个类到另一个类访问变量

来自分类Dev

如何使用Nokogiri将节点从一个xml文件复制到另一个xml文件?

来自分类Dev

使用XSLT从一个XML到另一个XML的一对一映射

来自分类Dev

如何使用dict()从一个文件到另一个python文件

来自分类Dev

在蟒蛇中。使用一个列表的格式到另一个列表

来自分类Dev

来自另一个文件的PowerShell XML节点

来自分类Dev

使用XSLT将XML中的Node复制到另一个位置

来自分类Dev

Xpath问题-无法从一个td遍历到另一个td

来自分类Dev

将行从另一个表插入到一个表中,而无需遍历游标

来自分类Dev

查询:当 $(this) 在另一个 div 中时,如何遍历到前一个 div 及其子级?

来自分类Dev

如何使用XSLT根据另一个节点的内容获取XML节点的值?

来自分类Dev

遍历另一个类中包含的向量

来自分类Dev

在Python的单链接列表中的另一个节点之前插入一个节点?

来自分类Dev

使用Java DOM解析器将XML节点从文档复制到另一个文档

来自分类Dev

使用Python在另一个函数中使用一个函数中的变量

来自分类Dev

xml xslt转换:无法将一个节点放入另一个

来自分类Dev

将一个节点从一个文档导入到另一个

来自分类Dev

将一个节点从一个文档导入到另一个文档

来自分类Dev

使用xslt将节点从XML插入另一个XML文件

来自分类Dev

合并另一个分支中的主节点

来自分类Dev

如何将子节点结构从一个XML文件复制到另一个XML文件(合并两个XML文件)?

来自分类Dev

Opencart:是否可以使用从一个vQmod xml到另一个vQmod xml的变量?

来自分类Dev

使用 powershell 遍历 XML 文件并将一个字段合并到另一个字段中

来自分类Dev

Python多线程使用另一个线程中的一个线程的数据

Related 相关文章

  1. 1

    如何在Python中将多个XML节点复制到另一个文件

  2. 2

    如何在Python中将多个XML节点复制到另一个文件

  3. 3

    使用Java读取XML中另一个节点内的节点

  4. 4

    根据python xpath中另一个的值选择xml节点

  5. 5

    Neo4j - 从一个节点遍历到另一个由父节点间接连接的节点

  6. 6

    在Python中从一个类到另一个类访问变量

  7. 7

    如何使用Nokogiri将节点从一个xml文件复制到另一个xml文件?

  8. 8

    使用XSLT从一个XML到另一个XML的一对一映射

  9. 9

    如何使用dict()从一个文件到另一个python文件

  10. 10

    在蟒蛇中。使用一个列表的格式到另一个列表

  11. 11

    来自另一个文件的PowerShell XML节点

  12. 12

    使用XSLT将XML中的Node复制到另一个位置

  13. 13

    Xpath问题-无法从一个td遍历到另一个td

  14. 14

    将行从另一个表插入到一个表中,而无需遍历游标

  15. 15

    查询:当 $(this) 在另一个 div 中时,如何遍历到前一个 div 及其子级?

  16. 16

    如何使用XSLT根据另一个节点的内容获取XML节点的值?

  17. 17

    遍历另一个类中包含的向量

  18. 18

    在Python的单链接列表中的另一个节点之前插入一个节点?

  19. 19

    使用Java DOM解析器将XML节点从文档复制到另一个文档

  20. 20

    使用Python在另一个函数中使用一个函数中的变量

  21. 21

    xml xslt转换:无法将一个节点放入另一个

  22. 22

    将一个节点从一个文档导入到另一个

  23. 23

    将一个节点从一个文档导入到另一个文档

  24. 24

    使用xslt将节点从XML插入另一个XML文件

  25. 25

    合并另一个分支中的主节点

  26. 26

    如何将子节点结构从一个XML文件复制到另一个XML文件(合并两个XML文件)?

  27. 27

    Opencart:是否可以使用从一个vQmod xml到另一个vQmod xml的变量?

  28. 28

    使用 powershell 遍历 XML 文件并将一个字段合并到另一个字段中

  29. 29

    Python多线程使用另一个线程中的一个线程的数据

热门标签

归档