Я тестирования что-то, но я не могу заставить его работать, вот проблема:Создать или вставить XML в CDATA
У меня есть XML:
<?xml version="1.0" encoding="UTF-8"?>
<history>
<name>
<age/>
</name>
</history>
Я хотел бы, чтобы вставить CDATA в том, что XML и содержание CDATA является частью XML, а также, что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<history>
<![CDATA[
<name>
<age/>
</name>
]]>
</history>
Я использую DOMDocument для создания XML:
header('Content-Type: text/xml');
$xml = new DOMDocument("1.0","UTF-8");
$base = $xml->appendChild($xml->createElement('history'));
$name = $base->appendChild($xml->createElement('name'));
$age = $name->appendChild($xml->createElement('age'));
$test = $xml->saveXML();
$xml->getElementsByTagName('history')->item(0)->appendChild($xml->createCDATASection($test));
$xml->formatOutput = true;
echo $xml->saveXML();
он генерирует этот XML:
<?xml version="1.0" encoding="UTF-8"?>
<history>
<name>
<age/>
</name>
<![CDATA[<?xml version="1.0" encoding="UTF-8"?><history><name><age/></name></history>]]>
</history>
Проблемы я столкнулся в моменты являются:
- Я смотрю на то, как работает CDATA, похоже, мне нужно завершить все «внутренний xml», прежде чем я смогу отрезать этот «внутренний xml», а затем создаю раздел cdata и вставьте его в раздел cdata
- Я использую временное решение, которое является str_replace, но я хотел бы использовать функцию domdocument createCData как можно больше.
включая XML в CDATA не выглядит хорошо для меня. В чем цель? – michi
@michi каким-то образом API нашего партнера требует, чтобы мы включили его, без него они выдают Системную ошибку. – Ponce