XHTML到XML XSLT的转换

XHTML到XML XSLT的转换,第1张

概述我正在做一个非常简单的xslt将html页面转换为xml文件. 但在我看来,起点并不是那么简单.我的第一个目标是转换一个< html>标记为< topic>标签. 我做了以下xslt: <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> 我正在做一个非常简单的xslt将HTML页面转换为xml文件.

但在我看来,起点并不是那么简单.我的第一个目标是转换一个< HTML>标记为< topic>标签.

我做了以下xslt:

<xsl:template match="@*|node()">   <xsl:copy>    <xsl:apply-templates select="@*|node()"/>   </xsl:copy>   </xsl:template> <xsl:template match="/">   <xsl:apply-templates/> </xsl:template> <xsl:template match="HTML">  <topic>    <xsl:text> Conversion Test</xsl:text>  </topic> </xsl:template>

但是,现在我运行这个xslt后,结果xml纯粹与原始HTML页面的内容相同,似乎我写的第三个模板匹配(以匹配< HTML>标记)永远不会被击中.

源HTML看起来像:

<!DOCTYPE HTML PUBliC "-//W3C//DTD xhtml 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <HTML xmlns="http://www.w3.org/1999/xhtml">   <head>..</head>   <body>...</body> </HTML>

专家可以帮我一点吗?

解决方法 XSLT 1.0:

尝试将xmlns:x =“http://www.w3.org/1999/xhtml”添加到xsl:stylesheet并将匹配更改为match =“x:HTML”. (注意:您不必使用“x”;您可以选择任何您想要的东西.)

XSLT 2.0:

使用上面的方法或将匹配中的命名空间前缀替换为“*”(match =“*:HTML”).您还可以将xpath-default-namespace =“http://www.w3.org/1999/xhtml”添加到xsl:stylesheet中.

总结

以上是内存溢出为你收集整理的XHTML到XML XSLT的转换全部内容,希望文章能够帮你解决XHTML到XML XSLT的转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1106828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存