На самом деле, как я вижу, я могу добавить пространства имен. Потому что я очень близок к выходу, который я ожидаю увидеть. Первые коды:
XML:
<helptext>
<h6>General configuration options.</h6>
<h2>Changing not yet supported.</h2>
<p>this is a <b>paragraph</b><br/>this is a new line</p>
</helptext>
XSL:
<xsl:template name="transformHelptext">
<xsl:for-each select="./child::*">
<xsl:element name="ht:{local-name()}">
<xsl:choose>
<xsl:when test="count(./child::*)>0">
<xsl:call-template name="transformHelptext"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:template>
Пока все хорошо. Для линий <h6>..</h6>
и <h2>...</h2>
проблем нет.
Но третья строка имеет дочерний узел, который является <b>
. И почему-то «абзац» является единственным текстом, который отображается для этой строки. У меня ошибка в choose
заявлении. Но я не могу понять это.
Спасибо
P.S: пространство имен ht определено в теге xsl-stylesheet, и это 'xmlns: ht = "http://www.w3.org/1999/xhtml"'
P.S: Я пытаюсь сделать так, чтобы я мог применять теги html, стили к моим конкретным узлам xml