1

我正在尝试修改具有 XML 语法的文件

<!DOCTYPE xml>
<lrf instance_prefix="U" pdescription="Type:%20DDR2%20SDRAM;&#xa;Density:%204Gb;&#xa;Data:%20x16;&#xa;Banks:%208;&#xa;Configuration:%2016M%20x%2016%20x%208;&#xa;Voltage:%201.8V;&#xa;Standard:%20JEDEC;&#xa;Pins:%2084;&#xa;Package:%20FBGA;&#xa;Package%20Standard:%20MO-207;%20Package%20Variation:%20DK-z;&#xa;Die:%20Single%20Die(SD)%20Package;&#xa;Target%20Device%20Family:%20Virtex-7;" unit="mm" target_family="V7" jedec_type="ddr2_sdram_mo207_dk_z" y_offset="0" interface_type="NormalInterface" x_offset="0" model_constraint="same_vccaux" pin_size="0.45">
 <group group_number="1" group_name="Address_Control" group_constraint="memory_address" group_color="#9accff">
  <pin pin_number="M8" pin_type="Input" pin_standard="SSTL18_II" pin_x_loc="5.6" signal_name="A&lt;0>" pin_y_loc="2.4" symbol_pin_name="DDR2_SDRAM_A&lt;0>"/>
  <pin pin_number="M3" pin_type="Input" pin_standard="SSTL18_II" pin_x_loc="1.6" signal_name="A&lt;1>" pin_y_loc="2.4" symbol_pin_name="DDR2_SDRAM_A&lt;1>"/>
  .
  .
  .
 </group>
 <group group_number="4" group_name="Power" group_color="#ff0000">
  <pin pin_number="A1" pin_type="Supply" pin_voltage="1.8" pin_x_loc="0" signal_name="VDD" pin_y_loc="11.2" symbol_pin_name="VDD"/>
  <pin pin_number="E1" pin_type="Supply" pin_voltage="1.8" pin_x_loc="0" signal_name="VDD" pin_y_loc="8" symbol_pin_name="VDD"/>
  <pin pin_number="J9" pin_type="Supply" pin_voltage="1.8" pin_x_loc="6.4" signal_name="VDD" pin_y_loc="4.8" symbol_pin_name="VDD"/>
  .
  .
  .
 </group>
.
.
</lrf> 

我的任务是查找值为“VDD”的信号名称,如果存在,则删除整个<pin .... />节点。如果在上述任务之后组节点中没有可用的元素,则删除该<group....> </group>节点。

我已经使用 XML::Simple 尝试过这个任务,但是顺序会随着元素的变化而变化。因此,我正在尝试使用 XML::LibXML 完成任务。任何人都可以对如何使用 LibXML 完成任务有所了解。任何帮助深表感谢。谢谢

4

0 回答 0