#xpath #conditional-statements
#xpath #условные операторы
Вопрос:
это может быть просто, но я хотел бы выбрать все внутри <div class="rc-box-citations-body">
при условии, что оно должно принадлежать <div class="definitionBox" id="meaning-1-1">
, тем самым однозначно идентифицируя его. Как я могу это сделать с помощью xpath? Спасибо.
<div class="definitionIndent">
<div class="definitionNumber">1.a</div>
<div class="definitionIndent">
<div class="definitionBox" id="meaning-1-1">
<span class="textmedium">
<span class="stampNoBorder">text</span>
<span class="definition">text</span>
</span>
</div>
<div class="definitionBox">
<div class="rc-box-citations">
<div class="rc-box-citations-top">
<span class="rc-citations-north-west">amp;#160;</span>
<span class="rc-citations-north-east">amp;#160;</span>
</div>
<div class="rc-box-citations-body"><span class="citat">text</span> <a class="sourcepop" href="javascript:void(0);"><span class="source">text</span><span class="popup">text</span></a></div>
<div class="rc-box-citations-bot">
<span class="rc-citations-south-west">amp;#160;</span>
<span class="rc-citations-south-east">amp;#160;</span>
</div>
</div>
</div>
</div>
</div>
Комментарии:
1. «при условии, что он должен принадлежать» … значение
<div class="rc-box-citations-body">
является потомком<...id="meaning-1-1">
?2. да, пожалуйста, проясните ситуацию. В вашем XML я не вижу совпадений, соответствующих указанным вами критериям. Не существует divs с
class='rc-box-citations-body'
в качестве потомков div сid='meaning-1-1'
.
Ответ №1:
Если я немного изменю ваш xml и возьму при условии, что он должен принадлежать, чтобы означать , что это потомок …. тогда этот xpath работает
//div[@class='definitionBox'][@id='meaning-1-2']//div[@class='rc-box-citations-body']
XML является
<?xml version="1.0" encoding="utf-16"?>
<div class="definitionIndent">
<div class="definitionNumber">1.a</div>
<div class="definitionIndent">
<div class="definitionBox" id="meaning-1-1">
<span class="textmedium">
<span class="stampNoBorder">text</span>
<span class="definition">text</span>
</span>
</div>
<div class="definitionBox" id="meaning-1-2">
<div class="rc-box-citations">
<div class="rc-box-citations-top">
<span class="rc-citations-north-west"></span>
<span class="rc-citations-north-east"></span>
</div>
<div class="rc-box-citations-body">
<span class="citation">text</span>
<a class="sourcepop" href="javascript:void(0);">
<span class="source">text</span>
<span class="popup">text</span>
</a>
</div>
<div class="rc-box-citations-bot">
<span class="rc-citations-south-west"></span>
<span class="rc-citations-south-east"></span>
</div>
</div>
</div>
</div>
</div>
Инструмент, который я использовал, — XPathVisualizer:
Комментарии:
1. Спасибо,
//div[@class='rc-box-citations-body']
ничему не соответствует, но это потому, что я допустил ошибку в своем примере выше (я новичок, у меня возникли некоторые проблемы с поиском правильных терминов, чтобы сказать, что именно мне нужно). Я отредактировал это сейчас, проливает ли это больше света на то, что делать?