如何将SqlXml转换为XmlText?

Cha*_*ani 3 c# xml types sql-server-2008

我正在读取SQL Server数据库中以Xml格式存储的一些数据,我正在使用C#来读取这些数据.我们在System.Xml中有一个名为XmlText的类型,但它不允许我将数据从SqlXml转换并存储到XmlText.我需要将数据库中的数据以XML格式复制到某个对象,然后序列化该对象.然后我需要通过网络发送一组对象.这里有什么解决方案?

Mar*_*ell 8

最终,SqlXml和之间没有直接的联系XmlText(实际上,XmlText只代表一种特定类型的节点,而不是xml).您将不得不再次进入stringbyte[]升级并重新备份(因为您没有使用流式读取器).例如:

string xml = reader.GetSqlXml(7).Value;
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
Run Code Online (Sandbox Code Playgroud)

要么:

string xml = reader.GetSqlXml(7).Value;
XElement el = XElement.Parse(xml); 
Run Code Online (Sandbox Code Playgroud)

或者(可能更有效)使用XmlReaderAPI:

XmlDocument doc = new XmlDocument();
using(XmlReader xr = reader.GetSqlXml(7).CreateReader()) {
    doc.Load(xr);
}
Run Code Online (Sandbox Code Playgroud)

XElement el;
using(XmlReader xr = reader.GetSqlXml(7).CreateReader()) {
    el = XElement.Load(xr);
}
Run Code Online (Sandbox Code Playgroud)