如题,怎么能获得当前xml节点的XPath。求高人解答

解决方案 »

  1.   

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load( Path.Combine( Environment.CurrentDirectory, "a.xml" ) );
    XmlNode emp = xmlDoc.SelectSingleNode( "/Company/Employee/ID[@code='001']/parent::node()" );

    /Items/Item[@id="1"]/Item[@id="1.1"]/Item[@id="1.1.2"] 
      

  2.   

    对不起,我问的是获得当前节点的XPath,而不是有了XPath去获取节点这是两个相反的过程
      

  3.   


    private void button5_Click(object sender, EventArgs e)
    {
        string str = string.Empty;
        XmlDocument xml = new XmlDocument();
        xml.Load(@"E:\file.xml");
        foreach (XmlNode node in xml.ChildNodes)
        {
            if (node.Name == "mso-infoPathSolution")
            {
                str = node.InnerText;
                str = str.Substring(str.IndexOf("=") + 1);  //等号后面就是name的值。
                MessageBox.Show(str);
            }
        }
    }
      

  4.   

    foreach (XmlNode node in XML.ChildNodes)
        {
            if (你的条件)
            {
                 你要做的事
             }
        }
      

  5.   

    不知道你要它的Xpath干什么,但是Xpath一般都是用来从XML文件中读取信息的,而它是我们自己根据想要查找的节点的位置自己构造的。首先,要用XMLDocument获取到你的XML文件,然后,再通过
    XMLDocument.SelectSingleNode,结合你要找的节点的Xpath获取到该节点即可。而Xpath具体构造方法在Goole或者baidu都可以搜到的。
      

  6.   

    XmlNode node = XXXXXXXXXXXXX;
    string path = node.Name;
    XmlNode parent = node.ParentNode;
    while (parent != null && !(parent is XmlDocument))
    {
        path = parent.Name + "/" + path;
        parent = parent.ParentNode;
    }
    Console.WriteLine(path);