例子在
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)
一个文件不知道“吸入数据”另一个文件,因为这些文件不会进行处理。
某种 XSLT 处理器将执行此操作,并且它被告知要处理的内容的方式各不相同,因此它可以处理不同的用例。
如果在浏览器中显示 XML 文档时呈现整个转换,则处理指令:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
Run Code Online (Sandbox Code Playgroud)
(实际上它应该是“text/xml”类型,因为它是 XSL 文档的 mime 类型,但这是浏览器战争的尾声,浏览器功能实现的速度仍然经常比常识)。
如果您使用某种库以编程方式控制转换(客户端 javascript 的对象和您可能想要使用的任何语言的库),那么您就有足够的控制权来详细说明得到的内容由什么转化。这里的一些有趣案例包括。
您甚至可以拥有一个包含内容节点和转换节点的文档,将它们挑选出来并运行转换。
如果您在多个 XML 文档上运行相同的转换,调用某种“PreCompile()”方法或类似方法通常会更有效,这会对该调用产生影响,从而使所有后续转换受益。
您可以将值传递给 XSLT 中的顶级参数。
您还可以在 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)