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_Linq To Xml - Fatal编程技术网

C# 得到最深或最深的元素

C# 得到最深或最深的元素,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我的问题是关于LINQ的XML,我有如下结构: <Or> <value /> <Or> <value /> <Or> //this is the deepest "or" element i should get in this case <value /> <value /> </Or>

我的问题是关于LINQ的XML,我有如下结构:

<Or>
   <value />
      <Or>
         <value />
         <Or> //this is the deepest "or" element i should get in this case
           <value />
           <value />
         </Or>
    </Or>
</Or>

//在这种情况下,这是我应该得到的最深刻的“或”元素
我基本上是通过递归以编程方式构建的,但我的问题是,如何获得最深的Or元素

如果我这样做:

elements.Element(“Or”),
它只会让我得到第一个最上面的元素,或者

等待答复。

试试看

XDocument xDoc = XDocument.Parse(xml); //XDocument.Parse(filename);
var deepestOr = xDoc.Descendants("Or")
                    .First(or => !or.Descendants("Or").Any());
var bench =  XElement.Parse(@"<Or><value /><Or><value /><Or><value /><value /></Or></Or></Or>");    

var lastOne = bench.Descendants("Or").Where( n => n.NodeType == XmlNodeType.Element).Last();
var bench=XElement.Parse(@');
var lastOne=bench.substands(“Or”)。其中(n=>n.NodeType==XmlNodeType.Element)。Last();
结果:

<Or>
  <value />
  <value />
</Or>


无论它有多深

这将为您提供以下结果:

XDocument doc = XDocument.Parse(@"<Or><value /><Or><value /><Or><value /><value /></Or></Or></Or>");

// take 'Or' node which contains no 'Of' nodes
var deepest = doc.Descendants("Or").Where(node => node.Descendants("Or").Count() == 0);
XDocument doc=XDocument.Parse(@');
//获取不包含“Of”节点的“Or”节点
var=doc.substands(“Or”)。其中(node=>node.substands(“Or”).Count()==0);

如果文档中不同位置有多个相同深度的
元素,该怎么办?不会的,总会有一位家长,然后是一位家长,然后是一位家长,或者是一位家长,然后是一位孩子,这三个元素中哪一个是最深的?更新了帖子,这是Or,我需要它:),虽然正如我所说的,它是递归构建的,可以是deaper,所以我不想做类似element.element(“或”).element(“或”)。。。等