代码之家  ›  专栏  ›  技术社区  ›  ptrcao

XPath:分组布尔运算符

  •  0
  • ptrcao  · 技术社区  · 6 年前

    在XPath 2.0的上下文中,我尝试导入一个CSV文件,尽管我觉得XPath过滤器的意图很明确,但我想验证以下语法是否正确:

    /node[image[1][string()] and ( (rocklea[1] + sydney[1]) > 0) and (productgroupcode[1] = "SYS" or productgroupcode[1] = "SVR" or productgroupcode[1] = "NBK" or productgroupcode[1] = "NAS")]
    

    基本上,XPath过滤器必须规定:

    1. 这个 image[1] 元素不能为空
    2. 元素之和 rocklea[1] sydney[1]
    3. 元素 productgroupcode[1] 必须等于以下值之一:“SYS”、“SVR”、“NBK”或“NAS”
    1 回复  |  直到 5 年前
        1
  •  0
  •   Mads Hansen    5 年前

    是的,它在语法上是正确的。从您对条件的描述来看,XPath似乎是正确的(如果您提供了要验证的示例数据,则更容易确定)。

    productgroupcode[1]

    /node[
      image[1][string()] and 
      (rocklea[1] + sydney[1]) > 0 and 
      productgroupcode[1] = ("SYS", "SVR", "NBK", "NAS") 
    ]