昨天我问了一个关于如何使用路径访问元素的问题,我得到了这个答案-
有可能做相反的事吗?意味着如果我用
getElementsByTagName方法有没有方法获取此元素的路径并分配它
到变量以供以后使用?

<?xml version="1.0" encoding="utf-8" ?>
<level1>
    <level2>
        <level3>header3</level3>
            <level4>header4</level4>
        <level3>header31</level3>
    </level2>
    <level2>
        <level3>nnn</level3>
        <level3>nnnnn</level3>
    </level2>
</level1>

最佳答案

假设您通过
XmlNodeList nl = doc.GetElementsByTagName("level4");
然后

        XmlNode node = nl[0];
        String sPath = node.Name;
        System.Xml.XmlNode np = node.ParentNode;
        while (np != null && np.NodeType != XmlNodeType.Document)
        {
            sPath = String.Format("{0}/{1}", np.Name, sPath);
            np = np.ParentNode;
        }
        sPath = "/" + sPath;
        Debug.WriteLine(sPath);

得到“/level1/level2/level4”作为spath的值
*注意:这是正确的,因为在输入xml中,level3是level4的同级(不是父级)

09-28 00:08