我想使用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>");
</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。结果只是一个文本。 谢谢你的帮助。
答案 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()"/>