0
這裏是我的xml文件如何從一個XML文件顯示節點的子元素,在Python?
<root>
<Module name="ac4" offset="32" width="12">
<register name="xga_control" offset="0x000" width="32" access="R/W">
<field name="reserved" offset="0" bit_span="5"/>
<field name="force_all_fault_clear" bit_span="1" default="0">
<description>Rising edge forces all fault registers to clear</description>
</field>
<field name="force_warning" default="0" bit_span="1">
<description>Forces AC2 to report a Master Warning</description>
</field>
<field name="force_error" default="0" bit_span="1">
<description>Forces AC2 to report a Master Error</description>
</field>
</register>
</Module>
<root>
現在我可以訪問我註冊的名稱,並顯示出來。不過,我也想顯示我的字段元素的名稱和屬性。我怎樣才能做到這一點?這是我的代碼到目前爲止。
input_file = etree.parse('file1.xml')
output=open("ac4.vhd","w+")
output.write("Registers \n")
for node in input_file.iter():
if node.tag=="register":
name=node.attrib.get("name")
print(name)
output.write(name)
output.write("\n")
if node.tag=="field":
name=node.attrib.get("name")
output.write(name)
現在輸出看起來像
Registers
xga_control
i_cmd_reg
我希望它看起來像
Registers
xga_control
reserved
force_all_fault_clear
force_warning
force_error
i_cmd_reg
field name
field name
如何做到這一點任何想法?相反,在迭代的input_file.iter()
你肯定有一個缺口問題。 '如果node.tag == 「場」:'是'如果node.tag == 「寄存器」 內:'塊。由於nod.tag永遠是「場」,如果它已經是「註冊」,這絕不會是真的。 – RobertB