当前位置:  开发笔记 > Android > 正文

如何获得XElement的position()?

如何解决《如何获得XElement的position()?》经验,为你挑选了2个好方法。

任何类似于/ NodeName/position()的XPath都会为您提供Node的位置,即它的父节点.

XElement(Linq to XML)对象上没有可以获取Element位置的方法.在那儿?



1> Vin..:

实际上NodesBeforeSelf().Count不起作用,因为它甚至可以获得XText类型的所有内容

问题是关于XElement对象.所以我认为是的

int position = obj.ElementsBeforeSelf().Count();

应该使用,

感谢布莱恩特的指导.



2> Bryant..:

您可以使用NodesBeforeSelf方法执行此操作:

    XElement root = new XElement("root",
        new XElement("one", 
            new XElement("oneA"),
            new XElement("oneB")
        ),
        new XElement("two"),
        new XElement("three")
    );

    foreach (XElement x in root.Elements())
    {
        Console.WriteLine(x.Name);
        Console.WriteLine(x.NodesBeforeSelf().Count()); 
    }

更新:如果您真的只想要一个Position方法,只需添加一个扩展方法.

public static class ExMethods
{
    public static int Position(this XNode node)
    {
        return node.NodesBeforeSelf().Count();  
    }
}

现在你可以调用x.Position().:)

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有