XDocument.Load 方法在 XDocument 中不存在

Posted

技术标签:

【中文标题】XDocument.Load 方法在 XDocument 中不存在【英文标题】:XDocument.Load method does not exist in XDocument 【发布时间】:2016-12-30 14:09:59 【问题描述】:

我一直在用 Linq 加载一个新的 XML 文档。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml.Linq;

namespace Project

    public partial class MainWindow : Window
    
        public MainWindow()
        
            InitializeComponent();
            XDocument doc = new XDocument.Load("001.xml");
        
    

我得到的回报是“XDocument”类型上不存在“Load”方法。 这真的很奇怪,因为我认为“使用 System.Xml.Linq”就足够了。 我想使用 Linq,因为我有一个复杂的 XML,而且我认为使用 Linq 浏览所有元素更容易。我正在使用 Visual Studio 2015 社区。​​p>

【问题讨论】:

解决了,我只是个假人。谢谢大家! 【参考方案1】:

Load 是一个静态方法。您的代码在语法上不正确 - 您似乎在尝试调用构造函数(通过使用 new),但您缺少一些括号。

要调用静态方法,很简单:

var doc = XDocument.Load("001.xml");

【讨论】:

【参考方案2】:

LoadXDocumentstatic 方法。您的代码尝试实例化一个新的XDocument 对象(在new XDocument())并调用Load 作为其实例方法。

将您的代码更改为:

XDocument doc = XDocument.Load("001.xml"); // without "new"

【讨论】:

【参考方案3】:

XDocument.Load是一个静态方法,直接这样使用(不用new):

XDocument doc = XDocument.Load("001.xml");

https://msdn.microsoft.com/en-us/library/bb343181(v=vs.110).aspx

【讨论】:

【参考方案4】:

另外,对于XDocumentstatic方法

 var xmlDoc = XDocument.Load("./wwwroot/resources/createwebsite.xml");

对于XmlDocument

  var xmld = new XmlDocument();
  xmld.Load("./wwwroot/resources/createwebsite.xml");

【讨论】:

以上是关于XDocument.Load 方法在 XDocument 中不存在的主要内容,如果未能解决你的问题,请参考以下文章

XElement.Load 和 XDocument.Load 有啥区别?

如何在 XDocument.Load(string uri) 上设置超时?

使用 Xdocument 进行简单的 Xml 解析

循环遍历 XDocument 的后代 - C#

如何防止XDocument添加XML版本和编码信息

从字符串填充 XDocument