Я пытаюсь найти все таблицы ниже моего текущего узла без включения вложенных таблиц. Другими словами, если у меня есть это, я хочу найти «да», а не «нет»:Установить разницу с XPath 1.0 - как мне получить .//table без .//table//table?
<table> <!-- outer table - no -->
<tr><td>
<div> <!-- *** context node *** -->
<table> <!-- yes -->
<tr><td>
<table> ... </table> <!-- no -->
</td></tr>
</table>
<table> <!-- yes -->
<tr><td>
<table> ... </table> <!-- no -->
</td></tr>
</table>
</div>
</td></tr>
</table>
Есть ли простой способ сделать это в XPath 1.0? (В версии 2.0 было бы .//table except .//table//table
, но я не имею 2.0 в качестве опции.)
EDIT: пожалуйста, ответы до сих пор не уважающие идею текущего узла контекста. Я не знаю, насколько далеко может быть первый слой таблицы (и может отличаться), и я также не знаю, могу ли я быть внутри другой таблицы (или двух или трех).
Буквально, я хочу, что .//table except .//table//table
в XPath 2.0 будет, но у меня есть только XPath 1.
Я думаю, что невозможно написать только один XPath 1.0, потому что мне нужно использовать один контекст несколько раз, и это запрещено. Могу ли я использовать два XPaths, один XPath для получения значения переменной и 2-й XPath для получения требуемых таблиц? – Gaim
Вы сделали это CW по какой причине? Это довольно сложный вопрос, который будет иметь правильный ответ, а не кандидат на CW. – AnthonyWJones
Что такое «CW»? И кто вы обращаетесь как «вы» там? Меня? Как я сделал это «CW»? :) –