返回一个字符串而不是XML

时间:2015-07-03 14:42:51

标签: php xml sqlsrv

我有一个返回XML字符串的SQL查询。有用。但是,我刚刚转移到一个Windows php服务器(从Linux一个),我不能再从数据库中获取xml字符串。它只是一个大字符串(不是xml格式),因此我无法解析所有数据。

$query = "SELECT s FROM returnXML('id') FOR XML AUTO, TYPE;";   

$stmt = sqlsrv_query($conn, $query);

if(sqlsrv_fetch($stmt) !== false) {
    $xml = sqlsrv_get_field($stmt, 0);
    echo stream_get_contents($xml);
    var_dump($xml);
}

任何帮助将不胜感激。用当前的代码。它打印数据(所有划掉的数据虽然......),然后是'资源(5)类型(流)'

谢谢!

1 个答案:

答案 0 :(得分:0)

替换代码
if (sqlsrv_fetch($stmt) !== false) {
    $xml_res    = sqlsrv_get_field($stmt, 0);
    $xml_string = stream_get_contents($xml_res);
    $xml        = simplexml_load_string($xml_string);
 }

$xml现在是一个php变量,其中的xml数据为SimpleXMLElement类型。