XQL选择以下元素

时间:2018-05-25 13:29:29

标签: xml xpath element

有没有办法选择一个元素,它位于一个元素之后,用XQL满足某些条件? 我有以下结构:

<parent>
<child>
    <a>AA</a>
</child>
<child>
    <a>BB</a>
</child>
<child>
    <a>CC</a>
</child>
<child>
    <a>DD</a>
</child>
<child>
    <a>EE</a>
</child>

我希望/ child / a的值位于/ child / a ='DD'之后 使用xPath我正在使用

/parent/child[./a = 'DD']/following::child/a

但XQL中没有followingfollowing-sibling函数。

1 个答案:

答案 0 :(得分:0)

使用序列运算符';;' (在前)和';' (紧随其后。)。 尽管这些运算符未包含在XQL规范中。

示例: 输入以下内容:

if(is_object($result))
{   
    while ($resultsArray =$result->fetch_assoc())
    {
        if(empty($data))
        {
           $data[] = array_keys($resultsArray);
        }
        $data[] = $resultsArray;

    } var_dump($data);
}

找到包含“ Shady Grove”的TD节点和紧随其后的TD节点:

<TABLE>
  <ROWS>
   <TR>
    <TD>Shady Grove</TD>
    <TD>Aeolian</TD>
   </TR>
   <TR>
    <TD>Over the River, Charlie</TD>
    <TD>Dorian</TD>
   </TR>
  </ROWS>
 </TABLE>

示例: 输入以下内容(来自“哈姆雷特”):

//(TD="Shady Grove" ; TD)

返回STAGEDIR及其后面的所有行:

<SPEECH>
  <SPEAKER>MARCELLUS</SPEAKER>
  <LINE>Tis gone!</LINE>
  <STAGEDIR>Exit Ghost</STAGEDIR>
  <LINE>We do it wrong, being so majestical,</LINE>
  <LINE>To offer it the show of violence;</LINE>
  <LINE>For it is, as the air, invulnerable,</LINE>
  <LINE>And our vain blows malicious mockery.</LINE>
 </SPEECH>

供参考link