次の構文で行をXMLとして返すストアドプロシージャを作成しました。
FOR XML PATH ('customer'), ROOT ('customers'), TYPE
SSMSのストアドプロシージャからクエリを実行すると、クリックすると問題なく表示される出力が生成されます。
ただし、C#からそのストアドプロシージャを呼び出すと、エスケープされた二重引用符が含まれていると思われるXMLが得られます。
<customers><customer id=\"123456\" firstName=\"ABE\" lastName=\"LINCOLN\" dob=\"02/12/1809\">
私のC#コードは次のようになります。
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;
}
ここで何が間違っているのですか?
前もって感謝します。