• C# 通过XPath查询/搜索/查找XML


    //实例:查找所有书名包含Harry的书

    bookdemo.xml
    <?xml version="1.0" encoding="utf-8" ?>

    <bookstore>



    <book category="COOKING">

    <title lang="en">Everyday Italian</title>

    <author>Giada De Laurentiis</author>

    <year>2005</year>

    <price>30.00</price>

    </book>



    <book category="CHILDREN">

    <title lang="en">Harry Potter</title>

    <author>J K. Rowling</author>

    <year>2005</year>

    <price>29.99</price>

    </book>



    <book category="WEB">

    <title lang="en">XQuery Kick Start</title>

    <author>James McGovern</author>

    <author>Per Bothner</author>

    <author>Kurt Cagle</author>

    <author>James Linn</author>

    <author>Vaidyanathan Nagarajan</author>

    <year>2003</year>

    <price>49.99</price>

    </book>



    <book category="WEB">

    <title lang="en">Learning XML</title>

    <author>Erik T. Ray</author>

    <year>2003</year>

    <price>39.95</price>

    </book>



    </bookstore>

    .cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    using System.Xml;
    using System.Xml.XPath;

    //通过XPath查询XML,在XPath中使用函数 
    publicpartialclass _Default : System.Web.UI.Page
    {
    public String contx;
    protectedvoid Page_Load(object sender, EventArgs e)
    {
    contx
    ="";
    XPathNavigator nav;
    XPathDocument docNav;
    //XPathNodeIterator NodeIter; 
    XPathNavigator node;
    String strExpression;

    try
    {
    docNav
    =new XPathDocument(System.AppDomain.CurrentDomain.BaseDirectory +"bookdemo.xml");
    nav
    = docNav.CreateNavigator();
    strExpression
    ="/bookstore/book[contains(title/text(), 'Harry')]/title";
    node
    = nav.SelectSingleNode(strExpression);
    contx
    += node.InnerXml;

    /*
    NodeIter = nav.Select(strExpression);
    while (NodeIter.MoveNext())
    {
    contx += NodeIter.Current.Value + "<br />";
    }
    */
    }
    catch (Exception)
    {
    contx
    ="Unfind !";
    }
    }
    }

    (注释部分为查询全部节点的方法)

  • 相关阅读:
    javascript中,一个js中的函数,第一句var _this = this;为什么要这样做?
    Sqlserver2012 sa账户登录添加其他账户
    ios模拟器快捷键
    XCode8.3真机调试设置
    1977-1998全国历年高考状元现状
    SQL修改数据表字段长度
    微信电脑版怎么修改信息提示音
    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
    XML序列化和反序列化
    CoolFormat源代码格式化工具(转)
  • 原文地址:https://www.cnblogs.com/bloodmage/p/1940873.html
Copyright © 2020-2023  润新知