Wie man den Knoten filtert, der eine bestimmte Zeichenkette darin hat und Delete
oder Remove
es.Php - wie zu entfernen/löschen tag mit bestimmten string in QueryPath?
So etwas wie
Die XML
ist wie:
<?xml version="1.0"?>
<user>
<urls>
<link>www.weblink-1.com</link>
<link> www.weblink-2.com</link>
<link> www.weblink-3.com</link>
<link> www.weblink-4.com</link>
<link> www.weblink-5.com</link>
</urls>
</user>
Sagen wir, ich entfernen möchten/löschen <link> www.weblink-4.com</link>
mit QueryPath
wie erreichen Sie das?
habe ich versucht, so etwas wie:
$r= qp($path,'user')->find("urls>link")->
filter("link:contains('<link> www.weblink-4.com</link>')");
print "<h1>".$r."</h1>";
///***ERROR: Catchable fatal error:
Object of class QueryPath\DOMQuery could not be converted to string*
ich auch so etwas wie versucht:
$r= qp($path,'user')->find("urls>link:contains('<link> www.weblink-4.com</link>')");
print "<h1>".$r."</h1>";
///***ERROR: Catchable fatal error:
Object of class QueryPath\DOMQuery could not be converted to string*
Und dann so etwas wie:
$qp = qp($path,'user>urls>link')->filter("link:contains('<link> www.weblink-4.com</link>')")->remove();
$qp->writeXML($path);
///This Deletes the entire Document's nodes leaving only the *<?xml version="1.0"?>*
Dies sollte einfach sein, aber drehen, um eher sehr stressig zu sein ..... Irgendwelche Vorschläge?
Dank obwohl ich Warnung angezeigt: 'Achtung: preg_match(): Trennzeichen darf nicht alphanumerisch oder Backslash sein in ... ' –
Ich benutze ältere (2.1) Version von QP, so dass das der Grund für den Unterschied sein könnte ... Verschiedene Begrenzer für filterPreg, wie" # www.weblinky - [^ 4] .com # "könnte auch ausprobiert werden. –
Bin jetzt mit einem anderen Problem konfrontiert ... Kann Ihnen helfen ... Siehe Link ::: http://StackOverflow.com/Questions/36957442/PHP-XPath-apppendchild-not-Working-properly –