如何将XML文件与XSLT文件链接?

nop*_*ole 40 xml xslt

例子在

http://en.wikipedia.org/wiki/XSLT

要么

http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog

似乎是独立的XML和XSLT文件.他们不必联系吗?或者你以某种方式把它们放在同一个文件中?否则,一个文件如何知道如何从另一个文件中吸取数据?

小智 64

您可以在xml声明后添加它

<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>
Run Code Online (Sandbox Code Playgroud)

  • 这在Firefox中对我有用,但在Chrome中没有显示任何内容. (4认同)
  • 这是放入XML(数据)文件?这是唯一的方法,还是可以告诉XSLT文件从哪个XML文件获取数据,或者是否包含包含带有XSLT文件的XML文件的第3个文件? (3认同)

Jon*_*nna 6

一个文件不知道“吸入数据”另一个文件,因为这些文件不会进行处理。

某种 XSLT 处理器将执行此操作,并且它被告知要处理的内容的方式各不相同,因此它可以处理不同的用例。

如果在浏览器中显示 XML 文档时呈现整个转换,则处理指令:

<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
Run Code Online (Sandbox Code Playgroud)

(实际上它应该是“text/xml”类型,因为它是 XSL 文档的 mime 类型,但这是浏览器战争的尾声,浏览器功能实现的速度仍然经常比常识)。

如果您使用某种库以编程方式控制转换(客户端 javascript 的对象和您可能想要使用的任何语言的库),那么您就有足够的控制权来详细说明得到的内容由什么转化。这里的一些有趣案例包括。

  1. 您甚至可以拥有一个包含内容节点和转换节点的文档,将它们挑选出来并运行转换。

  2. 如果您在多个 XML 文档上运行相同的转换,调用某种“PreCompile()”方法或类似方法通常会更有效,这会对该调用产生影响,从而使所有后续转换受益。

  3. 您可以将值传递给 XSLT 中的顶级参数。


Ido*_*ein 5

您还可以在 html 页面中进行转换:

<script type="text/javascript">
  var xml = new ActiveXObject("Microsoft.XMLDOM")
  xml.async = false
  xml.load("some_xml.xml")
  var xsl = new ActiveXObject("Microsoft.XMLDOM")
  xsl.async = false
  xsl.load("some_xsl.xsl")
  document.write(xml.transformNode(xsl))
</script>
Run Code Online (Sandbox Code Playgroud)