[xpath] matchen op cdata mogelijk?

Pagina: 1
Acties:

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 20:33

Pelle

🚴‍♂️

Topicstarter
Stel, ik heb dit XML documentje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<store>
    <category name="blaat">
        <product>
            <name>woei</name>
            <price>169</price>
        </product>
        <product>
            <name>meuh</name>
            <price>1114</price>
        </product>
        <product>
            <name>vvvt</name>
            <price>538</price>
        </product>
    </category>
    <category name="blib">
        <product>
            <name>zuut</name>
            <price>1000</price>
        </product>
    </category>
</store>


Dan kan ik met behulp van XPath bijvoorbeeld alle product-nodes van category 'blaat' selecteren:
code:
1
//category[@name='blaat']/product

Of, de namen van die producten:
code:
1
//category[@name='blaat']/product/name

Maar wat ik nu wil, is een match op cdata. Ik wil bijvoorbeeld de price van het product met name 'woei' weten. Als ik daar een match op kan krijgen, dan kan ik met parent::product/price de prijs ervan ophalen.

Is dit mogelijk, of zal ik de product-name als attribuut van product op moeten nemen?

[ Voor 1% gewijzigd door Pelle op 10-01-2003 03:30 . Reden: nohtml toegevoegd :+ ]


Verwijderd

Om alle product nodes te vinden die binnen een category node liggen die weer binnen een store node liggen en ten minste 1 child <name> element hebben met de waarde woei:
code:
1
//store/category/product[name='woei']

Mijns inziens is dus het verschil tussen zoeken naar een attribuut of een child element de aan-/afwezigheid van het @ teken.

/me heeft even getest met tooltje van http://www.simx.com/pub/XTrans/ en het lijkt te werken :)

offtopic:
En nu hopen dat het wel lukt die bomen door te zagen, zonder handen ...

[ Voor 13% gewijzigd door Verwijderd op 10-01-2003 05:01 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:10
Idd.
Ik heb hier voor Pelle trouwens een XPath tutorial in de aanbieding. :P

https://fgheysels.github.io/


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 20:33

Pelle

🚴‍♂️

Topicstarter
Verwijderd schreef op 10 January 2003 @ 04:46:
code:
1
//store/category/product[name='woei']

Het werkt! Thanks :)
whoami schreef op 10 January 2003 @ 10:06:
Idd.
Ik heb hier voor Pelle trouwens een XPath tutorial in de aanbieding. :P
Ik was ook aan XPath begonnen met een soort van tutorial: http://www.zvon.org/xxl/XPathTutorial/Output/example1.html

Hier komt echter nergens in de tientallen voorbeelden een match op de cdata van een child element voor. Ik heb de w3c specs er nog bijgepakt, maar daarin kon ik het ook niet vinden (het zal er vast wel in staan, maar het was laat en w3c specs zijn nou niet dat je zegt teksten die je doorleest omdat ze zo leuk geschreven zijn :+).

Maare, bedankt heren :)