【问题标题】:XPath | path expression .NetXPath |路径表达式.Net
【发布时间】:2009-07-27 01:22:15
【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>
<Country>
  <States>
    <County>
      <popularity>39</popularity>
      <name>Orange</name>
      <id>13811</id>
      <url>http://www.url.gov</url>
      <overview>Orange County Overview</overview>
      <Cities>
        <City name="City #1" size="big" population="33333"/>
        <City name="City #2" size="medium" population="2222"/>
        <City name="City #3" size="Small" population="111"/>
      </Cities>
    </County>
  </States>
</Country>

对于上述 XML,“select [cities] where [name]='Orange'”的等效 XPath 表达式是什么?

编辑 07/27/09 上午 00:29 PST:

我明白了! 谢谢大家的建议,你们是很棒的老师。 我能够使用

从所有“城市”中选择所有属性
/Country/States/County[name='Orange']/Cities/City

【问题讨论】:

  • 您能否说明您要选择哪些元素以及要过滤哪些元素/属性? (你想要所有 元素还是所有 元素)
  • 我想从所有中一一获取所有属性。谢谢大家的回复。

标签: xml xpath expression


【解决方案1】:

//Cities[../name="Orange"]/*

括号[../name="Orange"]中的谓词大致相当于where子句。

【讨论】:

  • /Country/States/County/Cities[../name='Orange'] 会更好。双斜线非常低效。使用示例文档,没什么大不了的,但对于大型文档,它有助于消除全树扫描。
  • “双斜线效率极低”?!根据我的经验,与检查 XML 元素的整个路径的名称相比,dependants() 运算符非常有效。但是,这取决于 XPath 实现使用的索引。
【解决方案2】:

//*[name="Orange"]/Cities/*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 2012-11-21
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多