昨天我问了一个关于如何使用路径访问元素的问题,我得到了这个答案-
有可能做相反的事吗?意味着如果我用
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的同级(不是父级)