/ / SimpleXML PHP - Чому функції DOM не працюють, проблеми з даними - php, simplexml, cdata

SimpleXML PHP - Чому функції DOM не працюють, проблеми з даними - php, simplexml, cdata

Я намагався всіляко створитизаписи даних про мої xml Моя остання спроба полягає в наступному. Я навіть не можу пройти перший вислів, де я створюю новий DOMDocument. Будь-які ідеї?

<?php
$xml = "
<?xml version="1.0" encoding="ISO-8859-1"?>
<cars>
<make name="Ford">
<model>Mustang</model>
</make>
<make name="Honda">
<model>Accord</model>
</make>
</cars>
";

$dom = new DOMDocument;

$dom->loadXML($xml);


$xml = simplexml_import_dom($dom);
print "working";
?>

Відповіді:

1 для відповіді № 1

У вас не повинно бути жодних символів перед декларацією XML. Видаліть перерву лінії в $xml = ".

Найменшим рішенням буде використання синтаксису heredoc:

$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<cars>
<make name="Ford">
<model>Mustang</model>
</make>
<make name="Honda">
<model>Accord</model>
</make>
</cars>
XML;

1 для відповіді № 2

Подивіться на: DOMDocument :: createCDATASection

$xml = "<?xml version="1.0" encoding="ISO-8859-1"?>
<cars>
<make name="Ford">
<model>Mustang</model>
</make>
<make name="Honda">
<model>Accord</model>
</make>
</cars>
";

$dom = new DOMDocument;
$dom->loadXML($xml);

$cdataNode = $dom->createCDATASection("<&>");
$dom->documentElement->appendChild($cdataNode);

echo $dom->saveXml();

Вихід:

<?xml version="1.0" encoding="ISO-8859-1"?>
<cars>
<make name="Ford">
<model>Mustang</model>
</make>
<make name="Honda">
<model>Accord</model>
</make>
<![CDATA[<&>]]></cars>