Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 计算xpath中子级的特殊文本_Xml_Xpath_Xpath 2.0 - Fatal编程技术网

Xml 计算xpath中子级的特殊文本

Xml 计算xpath中子级的特殊文本,xml,xpath,xpath-2.0,Xml,Xpath,Xpath 2.0,我有这个xml文档: <AAA> <CCC> <BBB>SALAM</BBB> <BBB>HALET KHUBE</BBB> <BBB>HEY</BBB> <TTT>SALAM</TTT> <GGG/> &l

我有这个xml文档:

    <AAA> 
      <CCC> 
           <BBB>SALAM</BBB>
           <BBB>HALET KHUBE</BBB> 
           <BBB>HEY</BBB> 
           <TTT>SALAM</TTT>
           <GGG/>
           <ZZZ/>
      </CCC> 
      <DDD> 
           <BBB>GOOD</BBB> 
           <BBB>BOOO</BBB> 
           <GGG/>
           <GGG/>
           <ZZZ/>
      </DDD> 
      <EEE> 
           <CCC>TAKE</CCC> 
           <DDD>LEAVE</DDD>
           <ZZZ/>
           <ZZZ/>
           <ZZZ/> 
      </EEE> 
 </AAA>

萨拉姆
哈勒特库伯
嘿
萨拉姆
好
博奥
拿
离开
我想选择有两个子节点且text=“SALAM”(该节点可以有任意数量的子节点,但必须有两个子节点且text=“SALAM”)。例如,在上述xml中,xpath查询必须返回CCC标记。 请帮帮我。 谢谢使用
count()
xpath函数:

//*[count(./*[text()="SALAM"])=2]
使用

/*/*[count(*[text() = 'SALAM']) = 2 ]
/*/*
  [*[text() = 'SALAM'][2]
 and
   not([*[text() = 'SALAM'][3])
  ]
使用以下选项可能更有效:

/*/*[count(*[text() = 'SALAM']) = 2 ]
/*/*
  [*[text() = 'SALAM'][2]
 and
   not([*[text() = 'SALAM'][3])
  ]
尽可能避免使用
/
伪运算符
,因为在许多情况下它可能非常慢