Entfernen Sie leere tags aus einer XML mit PHP
Frage
Wie kann ich das entfernen von leeren xml-tags in PHP?
Beispiel:
$value1 = "2";
$value2 = "4";
$value3 = "";
xml = '<parentnode>
<tag1> ' .$value1. '</tag1>
<tag2> ' .$value2. '</tag2>
<tag3> ' .$value3. '</tag3>
</parentnode>';
XML-Ergebnis:
<parentnode>
<tag1>2</tag1>
<tag2>4</tag2>
<tag3></tag3> //<- Empty tag
</parentnode>
, Was ich will!!!
<parentnode>
<tag1>2</tag1>
<tag2>4</tag2>
</parentnode>
XML, ohne die leeren tags wie "tag3"
Dank!
- Ehm, überprüfen Sie, ob der $Wert... Variablen leer sind vor dem anfügen an die Ausgabe?
- Ja, das ist ein Weg, es zu tun, aber ich möchte ein sehr sauberer code mit dem xml-Antworten. Ich bin auf der Suche nach einem Weg, es zu tun mit SimpleXMLElement oder so ähnlich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie XPath mit der Prädikat
not(node())
wählen Sie alle Elemente, die keine untergeordneten Knoten.Drucke
<x><!-- comment --></x>
bleiben im Dokument.Dies funktioniert rekursiv und entfernt Knoten:
CodePad.
Die Lösung, die funktionierte mit meiner Produktion PHP SimpleXMLElement object-code, die durch die Verwendung von Xpath, war:
Beachten Sie, dass es ist nicht erforderlich, um PHP-DOM, DOMDocument, DOMXPath, oder dom_import_simplexml().
Wenn du gehst, um eine Menge von diesen, nur etwas wie:
Ideal obwohl, sollten Sie wahrscheinlich verwenden domdocument.
'0'
leer.