【问题标题】:SaveXml in php returning empty stringphp中的SaveXml返回空字符串
【发布时间】:2014-06-19 16:04:41
【问题描述】:

我有以下 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 中的 jsp 调用接收到的以下内容加载为 DOMDocument

我正在尝试使用以下代码将 &lt;watchlists&gt; 节点作为字符串获取:

$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

【问题讨论】:

  • 您是要回显该元素还是将其保存到文件中?
  • 基本上我试图在一个字符串中获取监视列表节点,以便我可以将它从 php 传递给 c# dll
  • 我意识到我已经做了一个查看源代码来查看实际的 xml 输出
  • 这也是我之前发现的。

标签: php


【解决方案1】:

如果要输出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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    相关资源
    最近更新 更多