保留xslt中的html标签

时间:2014-04-09 23:23:46

标签: html xml xslt

我想使用xslt保留html标签。例如,我有xml结构:     <adaptation> <body> <p> <t>Consultez l'offre de formation en ligne (en cliquant sur le niveau souhaité dans le schéma ci-dessous)</t> </p> </body> </adaptation>

我想保留标签<body>, <p> ...我试图使用副本,但它不起作用:

`<xsl:template name="insertInfo">
    <xsl:param name="id"/>
    <xsl:param name="objet"/>
    <xsl:param name="valeurInfo"/>

    <xsl:text>INSERT INTO Information(idObjet, objetNom, valeurInfo)  VALUES (" </xsl:text>
    <xsl:value-of select="$id"/>
    <xsl:text>", "</xsl:text>
    <xsl:value-of select="$objet"/>
    <xsl:text>", "</xsl:text>
    <xsl:copy-of select="$valeurInfo"/>

    <xsl:text>");&#xa;</xsl:text>
</xsl:template> `

`<xsl:variable name="valeurInfo">
<xsl:value-of select="./adaptation"/>
 </xsl:variable>
 <xsl:call-template name="insertInfo">
    <xsl:with-param name="id" select="$idObjet" />
<xsl:with-param name="objet" select="$noeud" />
<xsl:with-param name="valeurInfo" select="$valeurInfo"/>
 </xsl:call-template>`.

当我创建var“valeurInfo”时,我甚至尝试使用copy-of。结果只是一个文本。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

<xsl:variable name="valeurInfo">
  <xsl:value-of select="./adaptation"/>
</xsl:variable>

会将变量设置为adaptation元素的字符串值,这意味着它的所有后代文本节点的串联,而没有插入标记。相反,如果你说

<xsl:variable name="valeurInfo" select="./adaptation"/>

然后这将使变量保持对adaptation元素节点本身的引用,而不是元素的值。

如果您只想要adaptation元素中的内容而不是<adaptation>...</adaptation>标记本身,请尝试

<xsl:variable name="valeurInfo" select="./adaptation/node()"/>