簡體   English   中英

SimpleXML PHP - 為什么DOM函數不起作用,cdata麻煩

[英]SimpleXML PHP - Why DOM functions don't work, cdata trouble

我一直在盡力在我的xml中創建cdata條目。 我的最新嘗試如下。 我甚至無法通過我創建新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";
?>

在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;

看看: 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM