Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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/14.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# 按名称检索XDocument的元素_C#_Xml_Linq To Xml - Fatal编程技术网

C# 按名称检索XDocument的元素

C# 按名称检索XDocument的元素,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我有一个XML文档。我想检索根节点的特定子节点。根节点没有名称空间,但是子节点有名称空间,尽管它们都是相同的。将此元素作为元素检索的最佳方法是什么?根节点的名称空间并不重要 你可以直接写 XNamespace ns = "http://..."; var elem = doc.Element(ns + "TagName"); 如果您不知道子项的名称空间,您可以通过它来匹配它们,它引用名称的本地(非限定)部分 string name = "purchase"; var query = xml.D

我有一个XML文档。我想检索根节点的特定子节点。根节点没有名称空间,但是子节点有名称空间,尽管它们都是相同的。将此元素作为元素检索的最佳方法是什么?

根节点的名称空间并不重要

你可以直接写

XNamespace ns = "http://...";
var elem = doc.Element(ns + "TagName");

如果您不知道子项的名称空间,您可以通过它来匹配它们,它引用名称的本地(非限定)部分

string name = "purchase";
var query = xml.Descendants()
               .Where(e => e.Name.LocalName == name);

这将返回一个
IEnumerable
。从那里,您可以循环使用它,或者如果您只希望存在一个,可以使用它。

使用XPath导航XML层次结构如何?