SqlXml
に変換されます
XmlReader
を取得できます SqlXml.CreateReader
それから。 SqlDataReader.GetSqlXml
文字列の代わりに型を取得するメソッド。
例:
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
SqlXml xmlData =
reader.GetSqlXml(0);
XmlReader xmlReader = xmlData.CreateReader();
xmlReader.MoveToContent();
while (xmlReader.Read())
{
if (xmlReader.NodeType == XmlNodeType.Element)
{
string elementName = xmlReader.LocalName;
xmlReader.Read();
Console.WriteLine(elementName + ": " + xmlReader.Value);
}
}
}
更新: @Wiktor Zychla からの有益なコメントに答えるには
このアプローチのパフォーマンスはより優れており、大幅になる可能性があります SqlReader.GetString
であるため、大きな XML フィールドを処理する場合に適しています。 SqlReader.GetSqlXml
中にフィールドの内容を最初に文字列にロードします ストリームから直接 XmlReader を作成します。これは、Reflector または同様のツールで System.Data を調べることですぐに確認できます。