У меня есть следующий HTML-документ:XPath Объединить Node Тексты на основе Условия
<div>
<span>Line 1</span>
<p>
<span class='inline'>This</span>
text should
<span class='inline'>be in</span>
one
<span class='inline'>line</span>
<span class='inline'>all together</span>
</p>
<em>
<span class='inline'>This</span>
line
<span class='inline'>too</span>
</em>
<a href="#">Line 4</a>
<div>
<p>
<span class='inline'>This fourth</span>
line
<span class='inline'>too</span>
</p>
</div>
<script type="text/javascript">//...</script>
<b></b>
</div>
Текст, который должен быть извлечен:
Line 1
This text should be in one line all together
This line too
Line 4
This fourth line too
На данный момент я использую //div//descendant::*[not(self::script)]/text()[string-length() > 0]
для извлечения текста.
Это приводит к следующему результату:
Line 1
This
text should
be in
one
line
all together
This
line
too
Line 4
This fourth
line
too
Как совместить тексты в случае класс «инлайн» используется? Или как я могу использовать текст родительского узла в случае, если класс «inline» был обнаружен внутри дочернего узла?
Обратите внимание, что это пример: Тег p и em может отличаться!