Мне нужно построить объекты Start из очень плохого XML.Я сделал парсер SAX для одного случая, но он грязный, и я хотел бы попробовать XPath.
У меня есть следующий XML:
<doc>
<start/>
<a/>
<b/>
<item/>
<item/>
<item/>
<start/>
<item/>
<item/>
<item/>
<start/>
<b/>
<item/>
<item/>
<item/>
</doc>
Однако я бы очень хотел этот документ (который я надеваю'):
<doc>
<start>
<a/>
<b/>
<item/>
<item/>
<item/>
<start/>
<start>
<item/>
<item/>
<item/>
<start/>
<start>
<b/>
<item/>
<item/>
<item/>
<start/>
</doc>
Предположим, что у меня есть 2-й объект "стартового" узла (из 1-го примера XML).Теперь я хотел бы получить элементы "a" и "b" непосредственно после этого узла.Однако, если я сделаю относительный запрос от этого узла (с последующим братом) для узла "b", я получу узел под 3-м стартовым узлом.Можно ли сказать «найти узел X, следующий за этим узлом, но остановиться на узле Y (вернуть ноль)»?
Я знаю, что могу использовать «|»или несколько запросов, но это не то, что я хочу (хотя это может решить и мою проблему).
Спасибо.