在TSQL中将查询结果集转换为xml格式时,它会在行尾显示“& #x0d”。请帮我消除此问题。
实际上我使用以下查询来获取慢查询,
$sqlOverall="SELECT CAST(AVG(scoreOverall) AS DECIMAL(10,1)) FROM ratings WHERE gameID=$id";
$scoreOverall = mysqli_query($conn, $sqlOverall);
foreach ($scoreOverall as $value) {
$scoreOverall = $value['CAST(AVG(queue_status) AS DECIMAL(10,1))'];
echo $scoreOverall;
}
示例结果集:(我刚刚从输出中选取了一些行)
SELECT top 10 qs.execution_count Exec_count,
(qs.total_elapsed_time / qs.execution_count )/ 1000000.0 AS Avg_exec_time,
convert(datetime2(0),qs.last_execution_time) Last_exec_time,
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS Query
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY Avg_exec_time DESC for xml path('slow_query')
答案 0 :(得分:0)
不太确定,你的问题实际上是什么......
&x0D;
是回车的实体代码(换行符)
您必须区分XML 中的数据和您从XML中读取的数据 。
在XML中,需要转义许多字符,否则会有特殊的语义。如果您在 XML中看到此代码,一切都应该没问题......
如果您从XML读取数据,问题是:您是如何做到这一点的?如果这样做得当,所有这些编码和重新编码都应该隐式完成......
如果这对您没有帮助,请提供更多详细信息......
作为快速拍摄,您可以使用REPLACE(YourString,CHAR(13),'')
删除这些字符,然后再创建XML ...
我仍然不明白这一点,为什么这对你很重要......
如您所知,有几种方法可以对换行符进行编码。但在所有情况下,这只是一个(或两个)特殊字符。它们是否呈现作为可见换行符是您用于读取数据的工具的问题。
检查出来(在SSMS中):
SELECT
'
' AS VisibleLineBreak
,CHAR(10) AS LineFeed
,CHAR(13) AS CarriagReturn
,CHAR(13)+CHAR(10) AS NewLine
,CHAR(10)+CHAR(13) AS WrongOrder
FOR XML PATH('LineBreaks');
网格输出中的可见结果
<LineBreaks><VisibleLineBreak>
</VisibleLineBreak><LineFeed>
</LineFeed><CarriagReturn>
</CarriagReturn><NewLine>
</NewLine></LineBreaks>
但是如果你点击XML&#34;链接&#34;为了打开XML查看器,你得到了这个
<LineBreaks>
<VisibleLineBreak>
</VisibleLineBreak>
<LineFeed>
</LineFeed>
<CarriagReturn>
</CarriagReturn>
<NewLine>
</NewLine>
<WrongOrder>
</WrongOrder>
</LineBreaks>
输出到文本的结果是
<LineBreaks><VisibleLineBreak>
</VisibleLineBreak><LineFeed>
</LineFeed><CarriagReturn>
</CarriagReturn><NewLine>
</NewLine><WrongOrder>

</WrongOrder></LineBreaks>
最常见的&#34; NewLine&#34; (13 + 10或0A + 0D)使用书面x0D
但执行x0A
,而显式x0A
按 编写 ...
我想对此说些什么:不要为 XML中的编码而烦恼。这不意味着人类阅读!。阅读应用程序必须打扰这些特殊字符的正确表示!