maccox
Goto Top

Mit php xml Datei filtern - wie strpos in Query Abfrage einbauen? (alle Knoten wo x im Element enthalten ist anzeigen)

Hallo,

meine php kann bereits nicht passende Elemente rauslöschen und die gefilterte xml Daten im Browser ausgeben, ich wollte diese jetzt etwas modifizieren, das ich nach einem vorkommenden String suchen kann und somit besser auswählen kann.

Ich will das jetzt mit strpos kombinieren, sprich dem PHP Pendant zu indexOf().

Das hab ich bisher, funktioniert so leider nicht:

            $doc = new DOMDocument; 
            $doc->load("liste.xml");   
            $xp = new DOMXPath($doc); 
            $hauptelement = $doc->documentElement; 
             

            $element= $xp->query('element[strpos(name, $name) === false]');   

            foreach ($element as $domElement){   
               $hauptelement->removeChild($domElement);  
            } 

            print "var11=";  
            print $doc->saveXML();

Eigentlich sollte es alles was nicht passt rauslöschen und mir nur noch die Einträge anzeigen, welche den Kundennamen enthalten, wie z.B: <name>KUNDENNAME_blabla<name>

"$name" kommt aus einer andern xml Datei und dieser Kundenname soll im Element Name der liste.xml mit enthalten sein.

Ich hoff man versteht was ich meine, dürfte ja eigentlich nicht zu schwer zu realisiern sein, blos bekomme ich die strpos Sache eben nicht mit dem Query kombiniert, so will das irgendwie nicht hinhaun face-sad

Gruß,
maccoX

Content-ID: 180353

Url: https://administrator.de/forum/mit-php-xml-datei-filtern-wie-strpos-in-query-abfrage-einbauen-alle-knoten-wo-x-im-element-enthalten-ist-180353.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

Arano
Arano 11.02.2012 um 15:50:12 Uhr
Goto Top
Hallo Maccox

Ich habe keinen blassen Schimmer von `XPath` aber es gibt da ein paar Dinge die, nach meiner neugierigen Suche, nicht passen - zumindest denke ich das...
  1. sprich dem PHP Pendant zu indexOf().: Was für ein `indexOf()` ? Das gibt es weder bei PHP noch bei XPath, aus welcher Sprache hast du das und was hat die mit deinem Problem zu tun !?
  2. `XPath()` kennt auch kein `strpos()` -> w3schools - XQuery Reference -> XPath Functions

Wie hier gezeigt wird PHP-Manual - DOMXPath::registerPHPFunctions() __kann__ man auch PHP-Funktionen "nutzbar machen" aber besser wäre es vielleicht nach einer in XPath integrieren Funktion zu suchen mit der gleiches machbar ist.


~Arano
maccoX
maccoX 18.02.2012 um 10:46:17 Uhr
Goto Top
Hallo,

ich hab die strpos Funktion jetzt ausserhalb dem Query benutzt und damit im Nachhinein nachgefiltert - klappt jetzt alles face-smile

Gruß, maccoX