关于 xml 节点位置的问题,如何获取到某个节点在整个文档中的相对位置?
有这样一个XML文件:
<xmlroot>
<xmlElement id = "x1 "/>
<xmlElement id = "x2 "/>
<xmlElement id = "x3 "/>
<xmlElement id = "x4 "/>
</xmlroot>
偶用xpath定位到其中的某个节点,问题是,如何知道节点的位置呢?
XmlDocument xd = new XmlDocument();
xd.LoadXml(xmlString);
XmlNode xn =xd.SelectSingleNode( "/xmlroot/xmlElement[@id= 'x3 '] ");
偶该如何得到这个xn的索引位置呢?例如偶想知道它是第三个节点?
------解决方案--------------------int index = 0;
XmlNode n = xn;
while (n != null)
{
n = n.PreviousSibling;
index++;
}
------解决方案--------------------如果你非想得到序号的话,可以试试下面的方法:
XmlNode parentNode = xd.SelectSingleNode( "/xmlroot ");
int index = 0;
foreach(XmlNode n in parentNode.ChildNodes)
{
if(n.NodeType!=XmlNodeType.Comment)
{
index +=1;
XmlAttribute id = n.Attributes[ "id "];
if(id!=null&&id.Value== "x3 ")
break;
}
}