Avatar billede surreal Nybegynder
24. marts 2006 - 09:26 Der er 1 løsning

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.
Avatar billede surreal Nybegynder
04. juli 2006 - 15:28 #1
Lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester