XML 파일에서 일부 문자열을 추출하고 싶습니다. 다음과 같이 나의 XML 파일 : -어떻게 XML 파일에서 값을 추출 할 수 있습니까?
<PartNumber name="750">
<SubComponent name="FPGA">
<SubComponentItem name="0" device_name="golden" desc="GPCAM FPGA Golden Image" rev="0x002a0023" type="FPGA_T6E_PIC" cache="yes" />
<SubComponentItem name="1" device_name="user" desc="GPCAM FPGA User Image" rev="0x002a0023" type="FPGA_T6E_PIC" cache="yes" />
</SubComponent>
<SubComponent name="LTC">
<SubComponentItem name="0" desc="ltc3880-1.0v-0" rev="0x0003" type="PMBUS_T6E_QSFP28" device_name="ltc3880-1.0v" index="0xb4" />
<SubComponentItem name="1" desc="ltc3880-3.3v" rev="0x0003" type="PMBUS_T6E_QSFP28" device_name="ltc3880-3.3v" index="0xb4" />
</SubComponent>
<SubComponent name="EEPROM">
<SubComponentItem name="0" desc="BCM8238X Retimer 0 ver" device_name="SLOT_NUMBER/%SLOT_NUMBER/0" rev="D00E" type="BCM8238X_EEPROM" cache="yes" />
<SubComponentItem name="1" desc="BCM8238X Retimer 0 checksum" device_name="SLOT_NUMBER/%SLOT_NUMBER/0" checksum="600D" type="BCM8238X_EEPROM" cache="yes" />
<SubComponentItem name="2" desc="BCM8238X Retimer 1 ver" device_name="SLOT_NUMBER/%SLOT_NUMBER/0" rev="D00E" type="BCM8238X_EEPROM" cache="yes" />
<SubComponentItem name="3" desc="BCM8238X Retimer 1 checksum" device_name="SLOT_NUMBER/%SLOT_NUMBER/0" checksum="600D" type="BCM8238X_EEPROM" cache="yes" />
</SubComponent>
</PartNumber>
예를 들어 내가 PARTNUMBER 이름 = 750과 SubComponentItem 이름 = FPGA 내부의 회전 값을 추출 할. 어떻게 추출 할 수 있습니까? 당신의 정보, 내 펄 버전 5.8.8 및 XML :: libxml 또는 XML에 대한
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $simple = XML::Simple->new();
my $data = $simple->XMLin('/cy/programable/1ProgrammableRevision.xml');
print Dumper($data) . "\n";
print $data->{PartNumber}->{750}->{FPGA}->{0}->{rev}->[1];
:: 나뭇 가지가 있습니다 : -
내가 코드를 아래에 시도했지만 여전히 몇 가지 오류가 발생했다가, 아래에있는 내 코드입니다 해당 사항 없음. 이 작업은 xpath
를 사용하여 훨씬 쉽게, 그리고 그것을 위해 당신은 XML::LibXML
또는 XML::Twig
필요 -
왜 라이브러리를 설치하겠습니까 ('XML :: Simple'은 핵심이 아닙니다). – Sobrique
XML :: Simple은 좋지 않습니다. 나중에 Twig를 사용하십시오. –
나는 XML :: Twig와 같이 시작하기 쉽다. 나는 완전히 특색 있고 강력하기 때문에'XML :: LibXML'을 좋아한다. – Sobrique