Добрый день!
Получаю все элементы на странице:
$elements = $xpath->query('*/node()');
foreach ($elements as $element) {
if ( $element->nodeName === 'p' ) {
// Здесь, необходимо обработать только текстовые узлы ! во всех потомках !, внутри элемента «p»
// и вернуть элемент «p» обратно, с уже обработанными текстовыми узлами
}
else {
echo $element->C14N();
}
}
Подскажите, пожалуйста, как обработать только текстовое содержимое параграфов, а так же текстовое содержимое всех их потомков, (в них могут быть теги span или a и т. д.)?
Пример:
Было:
<p>Ехал <span>Грека</span> через <a href="#">реку</a></p>
Стало:
<p>ЕХАЛ <span>ГРЕКА</span> ЧЕРЕЗ <a href="#">РЕКУ</a>
У меня получается сделать только вот так:
echo strtoupper( $element->C14N() )
...тогда на выходе все становится заглавными буквами. Вот так:
<P>ЕХАЛ <SPAN>ГРЕКА</SPAN> ЧЕРЕЗ <A HREF="#">РЕКУ</A></P>
Как обработать только все дочерние узлы?
P. S. Приведение к верхнему регистру, приведено для примера. С текстовыми узлами, будет проводиться обработка другого плана.