我正在做一个非常简单的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中.
原文地址:https://www.jb51.cc/html/231848.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。