- trim: documentation ( source)
- sprintf: documentation ( source)
<?php
$data = <<<DATA
<texts>
<text>
<paragraph/>
First text
<paragraph/>
Second text
</text>
<text>
<paragraph/>
Third text
<paragraph/>
Fourth text
</text>
</texts>
DATA;
$doc = new DOMDocument();
$doc->loadXML($data);
$xpath = new DOMXpath($doc);
$i = 1;
$expression = "//text/text()";
foreach ($xpath->query($expression) as $text) {
$result = trim($text->nodeValue);
if ($result !== "") {
echo sprintf("%d | %s<br>", $i++, $result);
}
}