Ash*_*pta 12 c# xml xmldocument linq-to-xml
我收到以下错误: -
System.InvalidOperationException:XmlReader状态应为Interactive.System.Xml.Linq.XDocument.Load(XmlReader reader,LoadOptions选项)中的System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r,LoadOptions o)
在以下代码中.有谁能指出我在这里做错了什么?
static XDocument GetContentAsXDocument(string xmlData)
{
XmlDocument xmlDocument = new XmlDocument();
if (!string.IsNullOrEmpty(xmlData))
{
xmlDocument.LoadXml(xmlData);
return xmlDocument.ToXDocument();
}
else
{
return new XDocument();
}
}
/// <summary>
/// Converts XMLDocument to XDocument
/// </summary>
/// <param name="xmlDocument"></param>
/// <returns></returns>
public static XDocument ToXDocument( this XmlDocument xmlDocument )
{
using( var nodeReader = new XmlNodeReader( xmlDocument ) )
{
nodeReader.MoveToContent();
return XDocument.Load(
nodeReader,
(LoadOptions.PreserveWhitespace |
LoadOptions.SetBaseUri |
LoadOptions.SetLineInfo));
}
}
Run Code Online (Sandbox Code Playgroud)
您应该使用XDocument.Parse和XmlDocument.OuterXml。请参阅下面的示例。
public static XDocument ToXDocument( this XmlDocument xmlDocument )
{
string outerXml = xmlDocument.OuterXml;
if(!string.IsNullOrEmpty(outerXml))
{
return XDocument.Parse(outerXml, (LoadOptions.PreserveWhitespace |
LoadOptions.SetBaseUri |
LoadOptions.SetLineInfo));
}
else
{
return new XDocument();
}
}
Run Code Online (Sandbox Code Playgroud)
可以在此处找到从 XmlDocument 转换为 XDocument的其他方法。
| 归档时间: |
|
| 查看次数: |
5101 次 |
| 最近记录: |