Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Html 特定同级之前的所有子元素的XPath?_Html_Xml_Xpath - Fatal编程技术网

Html 特定同级之前的所有子元素的XPath?

Html 特定同级之前的所有子元素的XPath?,html,xml,xpath,Html,Xml,Xpath,我有一个HTML文件,如下所示: <r> <ab id = "1"> <event/> <li>a</li> <li>b</li> <action/> <li>a2</li> <li>b2</li> <action/> </ab> <ab id = "2"

我有一个HTML文件,如下所示:

<r>
  <ab id = "1">
    <event/>
    <li>a</li> 
    <li>b</li>
    <action/>
    <li>a2</li>
    <li>b2</li>
    <action/>
  </ab>
  <ab id = "2">
    <event/>
    <li>a3</li>
    <li>b3</li>
    <action/>
  </ab>
</r>
但是,在第二步中,我陷入了困惑,我试图使用

following-sibling::*[following-sibling::action[1]]
它给了我结果

<li>a</li>
<li>b</li>
<action/>
<li>a2</li>
<li>b2</li>
<li>a3</li>
<li>b3</li>
  • a
  • b
  • ,但不太明白如何使用它,有人能帮我解释一下吗?

    这个XPath

    /r/ab/event/following-sibling::li[not(preceding-sibling::action)]
    
    将选择所有
    li
    元素,这些元素位于
    事件
    元素之后,并且没有前面的
    操作
    元素同级

    <li>a</li>
    <li>b</li>
    <li>a3</li>
    <li>b3</li>
    
  • a
  • b
  • a3
  • b3
  • 按要求

    <li>a3</li>
    <li>b3</li>
    
    /r/ab/event/following-sibling::li[not(preceding-sibling::action)]
    
    <li>a</li>
    <li>b</li>
    <li>a3</li>
    <li>b3</li>