Php 返回字符串而不是XML

Php 返回字符串而不是XML,php,xml,sqlsrv,Php,Xml,Sqlsrv,我有一个返回XML字符串的SQL查询。它起作用了。然而,我刚刚移动到一个WindowsPHP服务器(从一个linux服务器),我无法再从数据库中获取xml字符串。它只是一个大字符串(不是xml格式),所以我无法解析所有数据 $query = "SELECT s FROM returnXML('id') FOR XML AUTO, TYPE;"; $stmt = sqlsrv_query($conn, $query); if(sqlsrv_fetch($stmt) !== false)

我有一个返回XML字符串的SQL查询。它起作用了。然而,我刚刚移动到一个WindowsPHP服务器(从一个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)”

谢谢

将代码替换为

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数据作为类型。

您是否可以加入一个变量转储查询的输出元素,以便我们能够帮助您?而不是输出“122盒纸”,而是输出“122盒纸”以及php管理员中存储的内容?varchar中的标记是否包含它或它们已被剥离?如果我在Microsoft SQL Server Management Studio中运行我的查询,它将为我提供带有标记的xml字符串。然而,在php中,它返回没有标记的xml字符串(不确定这是否是您的意思),您如何查看结果?如果在浏览器中,请询问页面源