Задать вопрос

Как извлечь только CDATA из элемента текст + CDATA + текст?

Подскажите, как извлечь только CDATA из элемента, в котором сначала идет текст, потом секция не-xml CDATA, затем снова текст?
<root><example>text1<![CDATA[---]]>text2</example></root>

Гугл с ИИ советут
text()[2]

Но такой вариант возвращает пустой элемент, и без текста и без CDATA
<xsl:value-of select="/root/example/text()[2]" />
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Roman-Fov
1. /root/example/text() - весь текст элемента. Он там один /root/example/text()[1].
2. CDATA это не совсем текст. Это чёт вроде элемента.

Берём всё дочернее (не только текст) и выбираем только второе.
/root/example/descendant::node()
/root/example/descendant::node()[2]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы