在php中SaveXml返回空字符串

时间:2014-06-19 16:04:41

标签: php

我有以下xml:

<assumption_list>
    <assumption name="test" id="23" description="test1" is_shared="no">
        <watchlists>
            <watchlist globalissuer="koolwater" prepayrate="5" prepaytype="CPR" defaultrate="5" defaulttype="CDR" lossrate="7" lagmonths="2"/>
        </watchlists>
    </assumption>
</assumption_list>

我在php中作为DOMDocument

加载从jsp调用接收到的以下内容

我正在尝试使用以下代码将<watchlists>节点作为字符串获取:

$result = $xmlDoc->getElementsByTagName('watchlists');
$strxml='';
foreach($result as $element)
{
    print_r(simplexml_import_dom($element));
    $strxml = $xmlDoc->saveXML($element);
    var_dump($strxml);
}

我确实看到我的print_r(simplexml_import_dom($element));已填充,但由于某些原因,我在saveXml操作后看到空字符串。当前的实现是否有问题。

我正在尝试获取xml字符串表示,以便我可以将xml字符串传递给php应用程序使用的c#dll

1 个答案:

答案 0 :(得分:0)

如果要输出xml字符串表示形式,可以在此处使用简单的htmlentities()。请考虑以下示例:Sample Output

$xmlDoc = '<assumption_list> <assumption name="test" id="23" description="test1" is_shared="no"> <watchlists> <watchlist globalissuer="koolwater" prepayrate="5" prepaytype="CPR" defaultrate="5" defaulttype="CDR" lossrate="7" lagmonths="2"/> </watchlists> </assumption></assumption_list>';
$xmlDoc = simplexml_load_string($xmlDoc);
$result = $xmlDoc->assumption->watchlists->watchlist;
// echo $result->asXML(); // output as xml
echo htmlentities($result->asXML()); // output as xml string