Я хочу обрезать конечные пробелы в конце всех абзацев XHTML. Я использую Ruby с библиотекой REXML.
Допустим, у меня есть следующее в действительном файле XHTML:
<p>hello <span>world</span> a </p>
<p>Hi there </p>
<p>The End </p>
Я хочу закончить с этим:
<p>hello <span>world</span> a</p>
<p>Hi there</p>
<p>The End</p>
Поэтому я подумал, что мог бы использовать XPath, чтобы получить только нужные текстовые узлы, а затем обрезать текст, что позволило бы мне получить то, что я хочу (предыдущий).
Я начал со следующей XPath:
//root/p/child::text()
Конечно, проблема здесь в том, что он возвращает все текстовые узлы, которые являются потомками всех p-тегов. Что это такое:
'hello '
' a '
'Hi there '
'The End '
Попытка следующего XPath дает мне последний текстовый узел последнего абзаца, а не последний текстовый узел каждого абзаца, который является дочерним для корневого узла.
//root/p/child::text()[last()]
Это только возвращает: 'The End '
Поэтому я хотел бы получить от XPath:
' a '
'Hi there '
'The End '
Могу ли я сделать это с XPath? Или мне стоит подумать об использовании регулярных выражений (это скорее головная боль, чем XPath)?