У меня есть файл XML с элементами в видеDOMDocument сохранение XML CDATA
<TEST id="messageId"><![CDATA[Text I want to manipulate]]></TEST>
я могу получить доступ текст в CDATA с кодом ниже
$dom = new DOMDocument;
$dom->Load('/path/to/file.xml');
foreach ($dom->getElementsByTagName('TEST') as $element) {
$value = $element->nodeValue; //Text I want to manipulate
// do stuff to $value
$element->nodeValue = $value; // issue
}
$dom->save('/path/to/different/file.xml');
Однако, когда файл XML является сохранены, CDATA не хватает, и я получаю
<TEST id="messageId">Manipulated text</TEST>
Я прочитал, что нужно использовать createCDATASection()
, но я не могу совсем Figur e, как использовать его в этом контексте. Если я заменил $element->nodeValue = $value
на $dom->createCDATASection($value)
, тогда я просто сохраню исходный неизмененный XML-файл.
Я хочу, чтобы вернуться к исходному формату, но с манипулируют текстом
<TEST id="messageId"><![CDATA[Manipulated text]]></TEST>