Próbowałem wszystkich możliwych sposobów tworzeniawpisy cdata w moim xml. Moja ostatnia próba jest następująca. Nie mogę przejść obojętnie za pierwsze stwierdzenie, w którym tworzę nowy DOMDocument. Jakieś pomysły?
<?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";
?>
Odpowiedzi:
1 dla odpowiedzi № 1Nie powinieneś mieć żadnych znaków przed deklaracją XML. Usuń podział linii w $xml = "
.
Najlepszym rozwiązaniem byłoby użycie składni 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 dla odpowiedzi nr 2
Spójrz na: 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();
Wydajność:
<?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>