В этом фрагменте кода показана функция, которая будет загружать некоторые xml (убедитесь, что по крайней мере открытые теги имеют закрывающую подвеску и т. Д., В противном случае вы увидите / прочитаете некоторые ошибки), а затем примените htmlentities
ко всем текстовым узлам. На самом деле я не имею ни малейшего понятия о том, что вам нужно, но, вероятно, это делает вас счастливым:
$foo = '<div class="link">Here\'s is a link: <a href="http://www.example.com">Doors & windows</a></div>';
echo text_htmlentities(utf8_encode($foo));
/**
* add htmlentities onto the text-nodes of an
* xml fragment.
*
* @param string $foo xml fragment (utf8)
* @return string
*/
function text_htmlentities($foo) {
$foo = str_replace('&', '&', $foo);
$dom = new DOMDocument;
$dom->loadXml($foo);
$xpath = new DomXpath($dom);
foreach($xpath->query('//text()') as $node) {
$node->nodeValue = htmlentities($node->nodeValue, ENT_QUOTES, 'UTF-8', false);
}
return str_replace('&','&', $dom->saveXml($dom->firstChild));
}
Выход:
<div class="link">Here's is a link: <a href="http://www.example.com">Doors & windows</a></div>