spezielle xpath-query liefert keine ergebnisse

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • spezielle xpath-query liefert keine ergebnisse

    hallo,

    ich versuche in PHP 5.1.1 eine bestimmte XPath-Query zu verwenden, welche mir partout nicht die gewünschen Ergebnisse liefert.

    Mein XML-Teilbaum sieht z.b. so aus:
    Code:
    <contextNode>
        <subNode id="1">
            <txt>5</txt>
        </subNode>
        <subNode id="2">
            <txt>23</txt>
        </subNode>
        <subNode id="3">
            <txt>42</txt>
        </subNode>
    </contextNode>
    Wenn ich nun eine XPath-Query mit dem entsprechenden Context-Node schreibe erhalte ich folgende Ergebnisse:

    xpath = "subnode[@id=1]"
    Liefert korrekterweise den Knoten "subNode" mit dem Attribut id=1.

    Wenn ich nun aber aufgrund des wertes eines Kindelementes filtern will, klappt es nicht. Dazu habe ich folgendes versucht (und zahlreiche Variationen ;-):

    xpath = "subNode[txt='23']"
    Liefert keinen Knoten - gewollt ist aber der subNode-Knoten mit dem txt-Kind 23, also den subNode-Knoten mit dem attribute id=2.

    Hat jemand eine Idee, wie ich diese Query schreiben muss, damit es funktioniert?

    Vielen Dank für eure Ideen,
    predator

  • #2
    Hallo predator,

    benutzt Du evtl. einen Default-Namespace? Wenn ja könnte folgendes funktionieren (ns: Default-Namespace, vorher bei XPath-Objekt registrieren):

    xpath: ns:subNode[ns:txt='23']

    Die Art der Abfrage sollte eigentlich von der in PHP 5.1.1 verwendeten libxml unterstützt werden...
    Zuletzt geändert von spetters; 05.01.2006, 16:59.

    Kommentar


    • #3
      Hallo spetters,

      ja, ich benutze tatsächlich einen eigenen Default-Namespace.

      Super, die Anpassungen von Dir haben funktioniert.

      Danke für die schnelle Hilfe,
      predator

      Kommentar

      Lädt...
      X