2017-05-29 42 views
0
<?xml version="1.0" encoding="us-ascii"?> 
<Network id="5-Bus Test System" BaseKVAvalue="l00" unit="mva"> 
<BusList defaultBaseV="13800" unit="volt"> 
<Bus id="l" type="pq"> 
<P value="l.6" unit="pu"/> 
<Q value="0.8" unit="pu"/> </Bus> 
</BusList> 
</Network> 

我们应该使用什么命令获取总线的元素数据,即P,Q值打印为输出如何在python中使用ElementTree在以下xml代码中获取元素的数据?

我想这2个语句来提取数据

print(root[0][0]).text and print(root[0][0]).tail 

,但它给无作为输出两个

为下面的语句输出只给它的属性,但没有数据

print(root[0][0]).attrib 

ouptut是{'type':'pq','id':'l'}

回答

0

我更喜欢用名字查找节点。以下是检索PQ元素的属性的一种方法:

from xml.etree import ElementTree as ET 

tree = ET.parse("network.xml") 

print tree.find("BusList/Bus/P").attrib 
print tree.find("BusList/Bus/Q").attrib 

输出:

{'unit': 'pu', 'value': 'l.6'} 
{'unit': 'pu', 'value': '0.8'} 

但是如果你想要通过索引来访问节点,你可以像这样:

root = tree.getroot() 
print root[0][0][0].attrib 
print root[0][0][1].attrib 
+0

其工作的兄弟!谢谢您的帮助! – Nikhil

+0

很高兴我能帮到你。如果解决了您的问题,请将答案标记为已接受。 – mzjn

+0

谢谢我不知道有这样的选项,明白了! – Nikhil

相关问题