Это, вероятно, сложный вопрос.Как выбрать узел и его братьев и сестер до тех пор, пока не произойдет тот же самый узел с начала
У меня есть этот документ:
<html>
<h1>title1</h1>
<p>content</p>
<ul>
<li>item</li>
</ul>
<h1>title2</h1>
<p>content</p>
<p>another content</p>
<h1>title3</h1>
<ol>
<li><p>text</p></li>
</ol>
</html>
Этот пример показывает, что у меня есть некоторые HTML, где «разделы» разделены на заголовки. Это заголовок, затем различное сочетание элементов, а затем заголовок снова.
Я хочу, чтобы эти участки должны быть обернуты div
с использованием XSLT 2.
Итак, я хочу использовать <h1>
заголовок для выбора групп. Основном правило группировка:
- Выберите
h1
и все его братья и сестры, пока другойh1
не происходит.
Это напряжение на «и» очень важно, потому что я придумал XPath формул, выбранных узлов только между h1
узлов или выбрать из первого до последнего h1
игнорируя h1
между ними. Мне тоже нужно получить этот заголовок. Я не думаю, что это сложно сделать с XPath, но я не могу заставить его работать.
Для лучшего understandment, вот что он должен выглядеть следующим образом:
<html>
<div>
<h1>title1</h1>
<p>content</p>
<ul>
<li>item</li>
</ul>
</div>
<div>
<h1>title2</h1>
<p>content</p>
<p>another content</p>
</div>
<div>
<h1>title3</h1>
<ol>
<li><p>text</p></li>
</ol>
</div>
</html>
Отлично! Я думал, что решение находится в XPath, но это было неправильно. XSLT предлагает такое элегантное, простое комплексное решение. Спасибо! – Allwe
' 'должно быть сокращено до'
@MartinHonnen Спасибо! Я редко использую XSLT 2.0 и не думал об этом. – JLRishe