将 xsl 嵌入到 XML 文件中 [英] Embed xsl into an XML file
问题描述
我正在尝试将 xsl 嵌入到 XML 文件中.这样做的原因是创建一个可以移动到不同计算机的单个文件,这样就不需要移动 xsl 文件.
xsl 文件正在创建一个表并从 xml 中抓取一个测试步骤以及它是否通过或失败,非常简单.
我认为,我遇到的问题是 xsl 具有 javascript,并且在 IE 中加载 xml 时会显示它.
当我用IE加载xml文件时,javascript显示在表格上方,表格下方显示xml.
这是我的文档的布局方式:
]><文档><xsl:stylesheet id="4.1.0"版本=1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:msxsl="urn:schemas-microsoft-com:xslt"xmlns:user="http://www.ni.com/TestStand"xmlns:vb_user="http://www.ni.com/TestStand/" ><xsl:template match="xsl:stylesheet"/><xsl:text disable-output-escaping="yes"><msxsl:script language="vbscript" implements-prefix="vb_user">选项显式'此函数将返回十进制数的本地化小数点函数 GetLocalizedDecimalPoint()昏暗的 lDecPointlDecPoint = Mid(CStr(1.1),2,1)GetLocalizedDecimalPoint = lDecPoint结束函数</msxsl:script><msxsl:script language="javascript" implements-prefix="user"><![CDATA[//此样式表将不会显示值数组的表格而不是图形,如果//1.机器上没有安装TSGraph控件//2. 在 windows XP SP2 中使用样式表.安全设置防止样式表使用脚本创建 GraphControl.//有关更多信息,请参阅 TestStand 自述文件.//更多javascript函数//建立表格并从xml插入数据的代码</xsl:stylesheet><报告><Report Type='UUT' Title='UUT Report' Link='-1-2008-12-3-10-46-52-713' UUTResult='Failed' StepCount='51'>//其余的 xml</报告></报告></doc>
虽然 W3C XSLT 规范支持将 XSLT 样式表嵌入到 XML 文档中,但 IE 和 Firefox 似乎不支持这一点.
更新:根据 Robert Niestroj 的评论,多年后,即 2014 年 10 月,这适用于 FireFox 33.
不过,还有一个不错的选择:将 XML 文档嵌入到 XSLT 样式表中.
下面是一个例子.
包含嵌入式 XML 文档的 XSLT 样式表:
<前><?xml-stylesheet type="text/xsl" href="myEmbedded.xml"?><xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output omit-xml-declaration="yes"/><xsl:variable name="vEmbDoc"><文档><头部>头部><身体><para id="foo">你好,我是 foo</para>