【发布时间】:2015-06-13 13:03:35
【问题描述】:
以下是我的 XML 的简化版本:
<div><p class="start">1</p></div>
<div><p class="data">2</p></div>
<div><p class="data">3</p></div>
<div><p class="end">4</p></div>
<div><p class="data">5</p></div>
<div><p class="start">6</p></div>
<div><p class="data">7</p></div>
<div><p class="end">8</p></div>
这是我的代码的简化版本:
<?php
...
$start_nodes = $finder->query('//div[p/@class="start"]');
foreach ($start_nodes as $node) {
$data_nodes = $finder->query('following-sibling::div[p/@class="end"][1]/preceding-sibling::*', $node);
...
}
我不知道如何选择<div><p class="start"/></div> 节点、下一个<div><p class="end"/></div> 节点以及它们之间的所有节点。在上面的例子中,我想得到 1-4,然后是 6-8,然后跳过 5。
我在 PHP 中使用 XPath 1.0,它不是 XLST。
【问题讨论】:
-
我认为这绝不是 :( 你应该扫描节点直到
<div><p class="end"