我之前使用以下方式加载 XML 文件:
XDocument doc = XDocument.Load("File.xml");
Visit(doc.Root);
现在我想使用 FileUpload 框加载文件:
XmlDocument doc = new XmlDocument();
doc.Load(FileUpload1.FileContent);
Visit(doc.root);
但现在我在 "(doc.root)"上遇到错误。它说“不包含'Root'的定义并且没有扩展方法'Root'接受第一个参数类型”。我做错了什么?
最佳答案
那是因为 XmlDocument 没有根属性; XmlDocument 的根由对象的 DocumentElement 属性表示,在您的情况下:doc.DocumentElement
并且由于您的方法接收 XElement 参数作为输入,因此您需要先将 XmlElement 转换为 XElement将其传递给您的 Visit() 方法。使用下面的函数来完成它。
/// <summary>
/// Converts an XmlElement to an XElement.
/// </summary>
/// <param name="xmlelement">The XmlElement to convert.</param>
/// <returns>The equivalent XElement.</returns>
public static XElement ToXElement(XmlElement xmlelement)
{
return XElement.Load(xmlelement.CreateNavigator().ReadSubtree());
}
然后试试这样调用:
Visit(ToXElement(doc.DocumentElement));
关于c# - FileUpload 加载 .XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903538/