PHP DOM: Get nodeValue ohne absteigenden Knoten
Frage
Ich bin mit der php dom Funktion nodeValue
den Text Inhalt zu extrahieren. Aber es gibt den Nachkommen Werte zu:
<example>
<inhalt>123<more>45</more></inhalt>
</example>
Rückkehr für inhalt
12345 und 123, wie ich es vorziehen. Ich weiß, dass nicht der Sinn und nicht sehr gut Text innerhalb inhalt
haben, aber wie kann ich überprüfen, dass es kein Text in inhalt
wie hasNodeValue
ist?
Lösung
Wie Phil erwähnte Text auch in Knoten organisiert ist. Deshalb ist ihre node Inhalt hat zwei Kinder. Ein Textknoten ( "123") und ein Element Knoten mit dem Namen mehr , die auch einen Textknoten hat ( "45")
Wenn Sie nur wissen wollen, ob es Text vor dem Elemente mehr , Test, wenn es mindestens ein Element ist, und dann testen, ob das erste Element Text ist (sollte DomText , soweit ich mich erinnere).
Wenn Sie wissen möchten, wenn es mindestens ein Element „an der Wurzel“ ist, iterieren über alle Kinder und die gleichen Tests machen.