php DomDocument -- find empty text node?



Take this very basic XML document (this is just a basic example)



<?xml version="1.0" encoding="UTF-8"?>

<books>
<book>first title<sep/>first author</book>
<book>second title<sep/>second author</book>
<book>third title<sep/>third author</book>
<book><sep/>fourth author</book>
</books>


The problem is pretty simple... How do I insert the title of the fourth book ?

And how do I automatically detect that the title is not set for the fourth book ?


What I'd really need is the php DOMDocument to tell me that there is an empty text node in front of the last <sep/>.

But with DOMDocument, the node simply does not exist:



<?php

$path = './books.xml';

$dom = new DOMDocument();
$dom->load($path);

$books = $dom->getElementsByTagName('book');

foreach ($books as $index => $book) {
echo $book->childNodes->length . ' children' . PHP_EOL;
}


The code above shows only 2 childnodes for the last book node.


And using Xpath /books/book[4]/text()[1] points to the "author" text node of the fourth book and does not point to the empty text node in front of the <sep/>


Let me know if this is not perfectly clear...


Thanks in advance for your help !


No comments:

Post a Comment