我要选择所有具有子节点A并且A的属性值id>0的节点怎么写这个xpath语句啊比如这样的结构
<D1><A id=1></A></D1>
<D2><A id=0></A></D2>
<D3><A id=3></A></D3>
<D4><E id=4></A></D4>我想得到D1,D3
这两个节点 奇怪牛瘟这个xpath应该怎么写啊

解决方案 »

  1.   

    <products>
     <product SKU="7123734">  <name>Big Metal Pot</name>
      <price>19.95</price>
     </product> <product SKU="752585">
      <name>Plate</name>  <price>12.95</price>
     </product>
     <product SKU="4182476">  <name>Spoon</name>
      <price>4.95</price> </product>
    </products>
    你可以用下面的代码来获取产品的种类
    myXPathDocument.selectNodes("/products/product");你也可以用这样的代码来获得所有产品中价格超过5美圆的产品:
    myXPathDocument.selectNodes("/products/product[./price > 5]");你也可以获取所有的 SKUs 就像这样:
    myXPathDocument.selectNodes("/products/product/@sku");  ---------------------------------------------------------------------------------------------------XPath 规范基本上遵循与文件系统寻址相同的规则:    * 如果 XPath 表达式以斜杠 (/) 开头,代表的是 XML 元素的绝对路径(从 XML 文档的根开始)。
        * 如果 XPath 表达式以双斜杠 (//) 开头,则会选择当前文档中符合指定条件的所有元素,而不考虑它们在 XML 文档中的位置。例如,//employee 会查找 XML 文档中的所有员工节点。
        * 星号 (*) 会选择由前面的路径定位的所有 XML 元素。例如,/company/department/* 选择一个部门的所有子节点,即该部门的所有员工。
        * 点 (.) 选择当前的节点,两个点 (..) 选择父节点。例如,用于选择某个员工所在的部门的 XPath 表达式就是 ../employee。
        * 要选择属性,请使用 @ 字符。例如,/company/department/employee[@retired] 选择指定了 retired 属性的所有员工。 自己查资料学习下
      

  2.   

    如果我要同时检查连个节点是否就这样写呢/
    products/product[./price   >   5 && ./A > 5]
    假设a为product的另外一子节点 
      

  3.   

    .selectNodes("//A[.ID  >   5]");