Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从C中找到xml路径_C#_Xml_Linq - Fatal编程技术网

C# 无法从C中找到xml路径

C# 无法从C中找到xml路径,c#,xml,linq,C#,Xml,Linq,这个问题一定很简单,但我遇到了一个我无法解决的问题。 无论我尝试什么,我都无法用linq解析这个xml并获得完整的路径值。 错误是找不到路径 XDocument doc = XDocument.Load(@"All.xml"); !![在此处输入图像描述][1] 我如何解决它? 如何在C中获取xml信息 谢谢 xml: 错误是找不到路径 XDocument doc = XDocument.Load(@"All.xml"); 第一:因为XDocument,您不再需要XmlReader了。见附图

这个问题一定很简单,但我遇到了一个我无法解决的问题。 无论我尝试什么,我都无法用linq解析这个xml并获得完整的路径值。 错误是找不到路径

XDocument doc = XDocument.Load(@"All.xml");
!![在此处输入图像描述][1] 我如何解决它? 如何在C中获取xml信息

谢谢

xml:

错误是找不到路径

XDocument doc = XDocument.Load(@"All.xml");
第一:因为XDocument,您不再需要XmlReader了。见附图:

如果无法成功加载xml文件,请确保xml文件位于exe文件所在的位置。请将xml文件副本设置为Local=true

如果更新,请选择复制(如果较新则复制) 如果您的xml文件的分析有任何问题,请:

var qname = from xElement in doc.Element("submitInfo").Elements()
                        from p in doc.Element("setting").Elements()
                        select p;
请注意,元素没有空字符串,因为这意味着您将读取元素的名称没有xml标记名称为空!:

至于真正的xml内容,请更改为以下内容:

XDocument doc = XDocument.Load(@"XMLFile.xml");

//get all the sub elemens under the "setting" tag:

var qnames = from p in doc.Element("submitInfo").Element("setting").Elements("add")
             select p;
   foreach(var add in qnames)
{
   ………………
}

  var settingElement = doc.Element("submitInfo").Element("setting");  //Get the "setting" element.

//get "value" tag
var valueElement = doc.Element("submitInfo").Element("setting").Element("value");

关于您的第一个问题,这是一个文件放置的问题,除了需要确保您的文件位于bin\debug或bin\release文件夹或任何您的工作目录之外,我不能告诉您太多

至于读取XML,您可以将其全部解析为匿名类型并使用这些类型。这可能会更容易。如果您想使用具体类型,具体类型也有优势


当然,这还没有编译,但应该可以让您开始使用。然后您可以直观地使用它。

如何在C中获取xml信息?您能否澄清您希望从文件中获得什么,以及您的代码的哪些部分无法做到这一点?因为您没有使用文件的完整路径,您是否验证了XMLFile.xml当前工作目录中是否存在?@MatthewHaugen我要获取xml文本并显示it@JeffMercado这个xml文件是c语言的,我可以使用相对路径?而且这个相对路径似乎不是你所想的。我无法获取xmlpath@sally:请将您的xml文件复制到您的exe或可执行程序所在的位置。我复制了它。它可以运行,谢谢我想问一下您可以吗我使用相对路径?
XDocument doc = XDocument.Load(@"XMLFile.xml");

//get all the sub elemens under the "setting" tag:

var qnames = from p in doc.Element("submitInfo").Element("setting").Elements("add")
             select p;
   foreach(var add in qnames)
{
   ………………
}

  var settingElement = doc.Element("submitInfo").Element("setting");  //Get the "setting" element.

//get "value" tag
var valueElement = doc.Element("submitInfo").Element("setting").Element("value");
var file = XElement.Load(path);
var submitInfos = file.Elements("submitInfo")
                      .Select(submitInfo =>
                              {
                                  Settings = submitInfo.Elements("setting")
                                                       .Select(setting =>
                                                               {
                                                                   name = setting.Attribute("name").Value,
                                                                   info = setting.Attribute("info").Value,
                                                                   path = setting.Attribute("path").Value,
                                                                   serializeAs = setting.Attribute("serializeAs").Value,
                                                                   values = setting.Elements("add")
                                                                                   .ToDictionary(c => c.Attribute("name").Value, c => c.Attribute("value").Value)
                                                               })
                              });