• C#使用xpath找到一个节点


    Xpath这是非常强大。但对比是一个更复杂的技术,希望上面去博客园特别想看看一些专业职位。下面是一些简单Xpath的语法和示例,给你参考

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <catalog>
    <cd country="USA">
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <price>10.90</price>
    </cd>
    <cd country="UK">
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <price>9.90</price>
    </cd>
    <cd country="USA">
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <price>9.90</price>
    </cd>
    </catalog>

    定位节点
    XML是树状结构,类似档案系统内数据夹的结构。XPath也类似档案系统的路径命名方式。只是XPath 是一种模式(Pattern)。能够选出 XML档案中,路径符合某个模式的全部节点出来。比如要选catalog底下的cd中全部price元素能够用:

    /catalog/cd/price

    假设XPath的开头是一个斜线(/)代表这是绝对路径。假设开头是两个斜线(//)表示文件里全部符合模式的元素都会被选出来。即使是处于树中不同的层级也会被选出来。

    下面的语法会选出文件里全部叫做cd的元素(在树中的不论什么层级都会被选出来):

    //cd

    选择未知的元素
    使用星号(Wildcards,*)能够选择未知的元素。以下这个语法会选出/catalog/cd 的全部子元素:

    /catalog/cd/*

    下面的语法会选出全部catalog的子元素中,包括有price作为子元素的元素。

    /catalog/*/price

    下面的语法会选出有两层父节点,叫做price的全部元素。



    /*/*/price

    下面的语法会选择出文件里的全部元素。



    //*

    要注意的是。想要存取不分层级的元素,XPath语法必须以两个斜线开头(//)。想要存取未知元素才用星号(*)。星号仅仅能代表未知名称的元素,不能代表未知层级的元素。

    选择分支
    使用中括号能够选择分支。

    下面的语法从catalog的子元素中取出第一个叫做cd的元素。

    XPath的定义中没有第0元素这样的东西。

    /catalog/cd[1]

    下面语法选择catalog中的最后一个cd元素:(XPathj并未定义 first() 这样的函式喔,用上例的 [1]就能够取出第一个元素。

    /catalog/cd[last()]

    下面语法选出含有price子元素的全部/catalog/cd元素。



    /catalog/cd[price]

    下面语法选出price元素的值等于10.90的全部/catalog/cd元素

    /catalog/cd[price=10.90]

    下面语法选出price元素的值等于10.90的全部/catalog/cd元素 的price元素

    /catalog/cd[price=10.90]/price

    选择一个以上的路径
    使用Or操作数(|)就能够选择一个以上的路径。比如:

    /catalog/cd/title | catalog/cd/artist

    选择全部title以及artist元素

    //title | //artist

    选择全部title以及artist以及price元素

    //title | //artist | //price

    选择属性
    在XPath中,除了选择元素以外。也能够选择属性。

    属性都是以@开头。比如选择文件里全部叫做country的属性:

    //@country

    选择全部含有country这个属性的cd元素:

    //cd[@country]

    下面语法选择出含有属性的全部cd元素

    //cd[@*]

    下面语法选择出country属性值为UK的cd元素

    //cd[@country='UK']

    针对多个属性的查找:

    Books/book[@author='John' and @year='2009' and @language='En']

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Asp.net2.0 中自定义过滤器对Response内容进行处理 dodo
    自动化测试工具 dodo
    TestDriven.NET 2.0——单元测试的好助手(转) dodo
    JS弹出窗口的运用与技巧 dodo
    ElasticSearch 简介 规格严格
    修改PostgreSQL字段长度导致cached plan must not change result type错误 规格严格
    Linux系统更改时区(转) 规格严格
    mvn编译“Cannot find matching toolchain definitions for the following toolchain types“报错解决方法 规格严格
    ElasticSearch 集群 & 数据备份 & 优化 规格严格
    Elasticsearch黑鸟教程22:索引模板的详细介绍 规格严格
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4627553.html
Copyright © 2020-2023  润新知