错误:- XmlReader 状态在 XDocument.Load 上应为交互式
我收到以下错误:-
System.InvalidOperationException: XmlReader 状态应为交互式。 在 System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, 加载选项 o) at System.Xml.Linq.XDocument.Load(XmlReader 阅读器、LoadOptions 选项)
在以下代码中。有人能指出我在这里做错了什么吗?
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));
}
}
I get the following error :-
System.InvalidOperationException: The
XmlReader state should be Interactive.
at
System.Xml.Linq.XContainer.ReadContentFrom(XmlReader
r, LoadOptions o) at
System.Xml.Linq.XDocument.Load(XmlReader
reader, LoadOptions options)
in the following code. Could anybody point me what I doing wrong here?
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));
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用 XDocument.Parse和 XmlDocument.OuterXml。请参阅下面的示例。
从 XmlDocument 到 XDocument 的转换可以在此处找到。
You should use XDocument.Parse and XmlDocument.OuterXml. See the example below.
Other methods of converting from XmlDocument to XDocument can be found here.