常用的xpath

 private static void xmlPath()
        {
            /* Sample Documents
             * 
            <?xml version="1.0" encoding="ISO-8859-1"?>

            <bookstore>

            <book lang="chs">
                <title lang="chs">Harry Potter</title>
                <price>29.99</price>
            </book>

            <book lang="chs">
                <title>Harry Potter</title>
                <price>29.99</price>
            </book>

            <book>
                <title lang="eng">Learning XML</title>
                <price>39.95</price>
            </book>

            <book>
                <title Display="eng">Learning XML</title>
                <price>39.95</price>
            </book>

            <book>
                <title lang="eng">Learning</title>
                <price>45.95</price>
            </book>
             
            <book>
                <title lang="eng">Learning</title>
            </book>

            <book>
                <title lang="eng">Learning</title>
            </book>
             
            </bookstore>
             *
             */

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(@"C:\Documents and Settings\Administrator\Desktop\bookstore.xml");

            //grammar
            //      /       select from root
            //      //      select all regardless of their position
            //      .       select from current node
            //      ..      select the parent node of current node
            //      @       select attribute

            /*select from root 
             you can also selelct parent node first,
             then select from current node.
             */
            //all bookNodes
            XmlNodeList bookstoreNodes = xmlDoc.SelectNodes("bookstore/book");

            //select price less than 30 bookNodes
            XmlNodeList bookNodesPrice = xmlDoc.SelectNodes("bookstore/book[price<30]");

            //all langNodes
            XmlNodeList langNodes = xmlDoc.SelectNodes("//@lang");

            //select titleNodes with the lang attribute
            XmlNodeList titleNodes = xmlDoc.SelectNodes("bookstore/book/title[@lang]");

            //bookNodes that it's childnode named title is Learning
            XmlNodeList bookNodesTitles = xmlDoc.SelectNodes("bookstore/book[title='Learning']");

            //langNodes and value = eng
            XmlNodeList langEngNodes = xmlDoc.SelectNodes("bookstore/book/title[@lang='eng']");

            //select book node does not have price node
            XmlNodeList NoPriceNodes = xmlDoc.SelectNodes("//book[not(price)]");

            //select title element with attribute
            XmlNodeList titleElements = xmlDoc.SelectNodes("//title[@*]");

            /*use operator | ,you can select serval nodes*/
            //select all title nodes and price nodes
            XmlNodeList titlePriceNodes = xmlDoc.SelectNodes("//title|//price");
            foreach (XmlNode titlePriceNode in titlePriceNodes)
            {
                //select all attribute of current node 
                XmlNodeList attributes = titlePriceNode.SelectNodes("attribute::*");

                //selelct all text of current node 
                XmlNodeList texts = titlePriceNode.SelectNodes("text()");
            }

            //select the text of price node 
            XmlNodeList priceNodetexts = xmlDoc.SelectNodes("/bookstore/book/price/text()");

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值