Тест xml:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<testroot xmlns:abc="http://abc">
<testA>testNodeText</testA>
</testroot>
Код теста:
$xml = file_get_contents('test.xml');
$dom = new \DOMDocument();
$dom->loadXML($xml);
var_dump(
$dom->C14N(),
$dom->getElementsByTagName('testA')->item(0)->C14N()
);
Результат:
// 1
<testroot xmlns:abc="http://abc">\n
<testA>testNodeText</testA>\n
</testroot>
// 2
<testA xmlns:abc="http://abc">testNodeText</testA>
При получении содержимого узла DomDocument добавляет пространство имен. Проблема в том, что узел testA
не равен одному узлу testA
. Это имеет огромное влияние при создании значения ha sh из частей XML. Я просто не могу получить узел из XML и вычислить га sh из него, потому что есть пространства имен, перемещенные из документа root.
Любые идеи, как я могу получить содержимое узла из DomDocument, чтобы получить его как это в оригинальном документе?