вот в чем дело. У меня есть Viewer, который может читать XML, а также html. Теперь я хочу добиться следующего. Я хочу, чтобы текст из <note>
был преобразован в CDATA (проверка), но если в <note>
используется конкретный c элемент, * давайте назовем элемент <html>
, весь текст в этом элементе не должен быть преобразован в CDATA.
Возможно ли это вообще? Я уже пробовал разные вещи, но пока не нашел решения, которое помогло бы мне в моем случае.
Входные данные таковы:
<infobox>
<title>HTML TEST</title>
<note><b>XML in the Note</b><html html="yes"><h1>Headline</h1>
<h2 style="color:green"> Grüne Schrift </h2>
<h3 style="color:black"> Schwarze Schrift </h3>
<h4 style="color:#FF0000"> Rote Schrift </h4></html>
</note>
</infobox>
My Часть XSL для заметки такова:
<xsl:template match="note[not(ancestor::info) and not(ancestor::item-content) and not(ancestor::context)]">
<note type="{@type}">
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<div class="{$noteClass}">
<xsl:apply-templates/>
</div>
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</note>
</xsl:template>
Мой опубликованный результат таков:
<infobox>
<title id="CAP0e6ba25c-a8a1-45fb-a957-43c3195f9c326">HTML TEST</title>
<note type=""><![CDATA[<div class="NoteContent">
<b>XML in the Note</b>
<html><<div class="html-content"><h1>Headline</h1><h2 style="color:green"> Grüne Schrift </h2>
<h3 style="color:black"> Schwarze Schrift </h3>
<h4 style="color:#FF0000"> Rote Schrift </h4></div>]]></html>
</div>]]></note>
</infobox>
Мой разыскиваемый опубликованный результат такой :
<infobox>
<title id="CAP0e6ba25c-a8a1-45fb-a957-43c3195f9c326">HTML TEST</title>
<note type=""><![CDATA[<div class="NoteContent">
<b>XML in the Note</b></div>]]><html><h1>Headline</h1><h2 style="color:green"> Grüne Schrift </h2> <h3 style="color:black"> Schwarze Schrift </h3> <h4 style="color:#FF0000"> Rote Schrift </h4></html>
</note>
</infobox>
Итак, вы видите, что элемент <html>
должен быть исключен из преобразования.
Я открыт для любого предложения по редактированию показанной части xsl или для любой дополнительный ввод xsl.
Спасибо всем.