Querying XML with XPAth
Hej,Jeg har en xml fil, som indeholder et programs konfiguration. Filen indeholder en tag, der hedder "requests," som har 4 children med navnet request. Jeg vil gerne læse hver request's attributer samt den tekst (CDATA) en ad gangen. Xml filen ser således ud:
...
<requests>
<request method="get" resource="/"<![CDATA[AAAAA]]></request>
<request method="get" resource="/1"<![CDATA[BBBBB]]></request>
<request method="get" resource="/2"<![CDATA[CCCCC]]></request>
</requests>
...
Når jeg forsøger at læse CDATA-tesksten, får jeg samtlige tekster i hver loop, dvs. 9. Jeg har følgende kode:
my $nodeset = $xpath->find('//configuration/requests/request');
foreach my $node ($nodeset->get_nodelist) {
my $method = $node->find('@method')->string_value();
my $resource = $node->find('@resource')->string_value();
my $response = $node->find('//configuration/requests/request');
}
Jeg kan se, at $node->find('//configuration/requests/request') er problematisk, idet den tager samtlige tekster med, ikke kun pågældende $node's tekst.
Hvordan får jeg fat i en //configuration/requests/request CDATA, en ad gangen?
På forhånd tak.