C# 从存储过程返回的XML反斜杠
我编写了一个存储过程,它使用以下语法以XML形式返回我的行:C# 从存储过程返回的XML反斜杠,c#,sql,xml,escaping,C#,Sql,Xml,Escaping,我编写了一个存储过程,它使用以下语法以XML形式返回我的行: FOR XML PATH ('customer'), ROOT ('customers'), TYPE 从SSMS中的存储过程运行查询会生成一个输出,当单击该输出时,看起来很好 但是,从C#调用该存储过程会得到我假设有双引号的XML,因此: <customers><customer id=\"123456\" firstName=\"ABE\" lastName=\"LINCOLN\" dob=\"02/12/18
FOR XML PATH ('customer'), ROOT ('customers'), TYPE
从SSMS中的存储过程运行查询会生成一个输出,当单击该输出时,看起来很好
但是,从C#调用该存储过程会得到我假设有双引号的XML,因此:
<customers><customer id=\"123456\" firstName=\"ABE\" lastName=\"LINCOLN\" dob=\"02/12/1809\">
我这里出了什么错
提前谢谢
我这里出了什么错
我怀疑您只是在调试器中检查字符串,调试器通常会转义字符串,就好像您想将其作为C#string文本编写一样
尝试记录字符串(例如,简单到将其写入控制台),我怀疑您会发现这些反斜杠根本不存在。是否有错误?或者您只是看到调试器转义字符串的方式吗?看起来就是这样。谢谢。@DerPflug:如果按enter键并在“监视”窗口中突出显示值,则会弹出一个“文本可视化工具”窗口,显示字符串而不转义。
public string GetCustomerXML()
{
string xml = string.Empty;
XmlDocument xmlDoc = new XmlDocument();
using (SqlConnection myConnection = new SqlConnection(connectionString))
{
myConnection.Open();
using (SqlCommand cmd = new SqlCommand("GetData_CreateXML", myConnection))
{
cmd.CommandType = CommandType.StoredProcedure;
using (XmlReader reader = cmd.ExecuteXmlReader())
{
while (reader.Read())
{
xmlDoc.Load(reader);
xml = xmlDoc.OuterXml.ToString();
}
}
}
}
return xml;
}