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:
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
Gruß,
maccoX
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
Gruß,
maccoX
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
2 Kommentare
Neuester Kommentar
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...
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
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...
- 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 !?
- `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