При получении nodeValue объекта DOMNode, который имеет сущности в nodeValue (то есть a & gt;), тогда он преобразует объект в его печатный символ (т.е.>)
Кто-нибудь знает, как заставить его сохранить его как сущность, он действительно запутывает сопоставления строк, когда он преобразуется в нечто неожиданное.
Следующий код воспроизводит проблему, вы заметите, что длина дампа равна 3, когда она должна быть 6.
<?php $xml='<?xml version="1.0"?> <root> <element>></element> </root>'; $a=new DOMDocument(); $a->loadXML($xml); var_dump($a->childNodes->item(0)->nodeValue);
loadXML()
принимает аргумент options
, а один из параметров – LIBXML_NOENT , который позволяет преобразовывать объекты в свои представления, поэтому по умолчанию loadXML()
не должен этого делать. Однако, как представляется, в libxml появляется ошибка, которая заставляет это происходить все время, согласно этому отчету об ошибке