Elemente löschen per PHP DOM
Paul
- xml
Moin!
mit
foreach($zuLoeschen as $loeschen) {
$loeschen->parentNode->removeChild($loeschen);
}
lösche ich einige Elemente aus einem xml-file.
xml Vorher:
<AdministrEinheit>
<test>
<test1>
abc
</test1>
</test>
<Gemeinde>
<Name/>
<Nummer/>
</Gemeinde>
</AdministrEinheit>
xml Nachher:
<AdministrEinheit>
<test>
<test1>
abc
</test1>
</test>
<Gemeinde>
</Gemeinde>
</AdministrEinheit>
Frage: Wie bekomme ich die Leerräume/Leerzeichen in den leeren Tags weg?
Paul
Hi!
Frage: Wie bekomme ich die Leerräume/Leerzeichen in den leeren Tags weg?
Indem du den dortigen Textnode bearbeitest. Es gibt zwar in DOMDocument die beiden Eigenschaften preserveWhiteSpace und formatOutput, die wirken aber nur, wenn man sie vor einem load()/loadXML() setzt. Und sie beziehen sich nur auf den Whitespace zwischen den Elementen, nicht jedoch den innerhalb.
Lo!
Danke, das reicht mir schon!
Frage: Wie bekomme ich die Leerräume/Leerzeichen in den leeren Tags weg?
Indem du den dortigen Textnode bearbeitest...
Damuss ich doch mal nachfragen: wie? Ich kenne die Namen der Knoten nicht. Mir ist nur bekannt, dass sie "leer" sind (was aber eben auch den Leerraum beinhaltet der nicht als leer angesehen wird).
Hi!
Frage: Wie bekomme ich die Leerräume/Leerzeichen in den leeren Tags weg?
Indem du den dortigen Textnode bearbeitest...
Damuss ich doch mal nachfragen: wie? Ich kenne die Namen der Knoten nicht. Mir ist nur bekannt, dass sie "leer" sind (was aber eben auch den Leerraum beinhaltet der nicht als leer angesehen wird).
Woher weißt du denn, dass sie leer sind? Am Ergebnis der Ausgabe, die irgendwann später stattfindet? Dann kannst du dir nur einen Texteditor schnappen und die Zeilen rauslöschen.
Aber es geht ja nicht darum, dass _du_ etwas weißt, sondern darum, dass das Programm wie vorgesehen arbeitet. Also musst du schauen, an welcher Stelle das Programm von den Leerstellen weiß oder wann es ermitteln muss, dass welche vorhanden sind. Nach dem Löschen hast du ja immer noch die Referenz auf parentNode. Und dessen Inhalt kannst du prüfen und entsprechend reagieren.
Lo!
Nach dem Löschen hast du ja immer noch die Referenz auf parentNode. Und dessen Inhalt kannst du prüfen und entsprechend reagieren.
Goldrichtig! Danke!
Hi,
Indem du den dortigen Textnode bearbeitest...
Damuss ich doch mal nachfragen: wie? Ich kenne die Namen der Knoten nicht. Mir ist nur bekannt, dass sie "leer" sind (was aber eben auch den Leerraum beinhaltet der nicht als leer angesehen wird).
er wird nicht nur nicht als leer angesehen. Er *ist* nicht leer. Er ist ein Textknoten (bzw. mehrere), der sich an exakt der Stelle befindet, die Du gerade bearbeitet hast. Mit anderen Worten: Du weißt, wo Du zu suchen hast; Du weißt, was Du zu suchen hast. Die Mission lautet Search and Destroy.
Cheatah