首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于 xml 节点位置的有关问题,怎么获取到某个节点在整个文档中的相对位置

2011-12-14 
关于 xml 节点位置的问题,如何获取到某个节点在整个文档中的相对位置?有这样一个XML文件:xmlrootxmlEle

关于 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;
}
}

热点排行