FileUpload 加载 .XML

发布于 2024-12-27 16:33:00 字数 383 浏览 0 评论 0原文

我以前使用以下方式加载 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’接受第一个参数类型”。我做错了什么?

I was previously loading an XML file by using:

        XDocument doc = XDocument.Load("File.xml");
        Visit(doc.Root);

Now I want to load the file by using a FileUpload box:

        XmlDocument doc = new XmlDocument();
        doc.Load(FileUpload1.FileContent);
        Visit(doc.root);

But now I'm getting an error on "(doc.root)" . It says that "does not contain a definition for 'Root' and no extension method 'Root' accepting a first argument type". What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一念一轮回 2025-01-03 16:33:00

这是因为 XmlDocument 没有 root 属性; 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));

That is because XmlDocument doesnt have a root property; The root of the XmlDocument is represented by the DocumentElement property of the object, in your case: doc.DocumentElement and since your method receives an XElement parameter as input you will need to convert the XmlElement to an XElement before passing it into your Visit() method. Use the function below for doing it.

  /// <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());  
  }

Then try calling in this way:

  Visit(ToXElement(doc.DocumentElement));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文