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

时间:2010-08-11 08:38:59

标签: xml xslt

的例子

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

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

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

4 个答案:

答案 0 :(得分:62)

您可以在xml声明

之后添加它
<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>

答案 1 :(得分:3)

您也可以在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>

答案 2 :(得分:3)

一个文件不知道“吸入数据”另一个文件,因为文件不是将要处理的文件。

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

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

<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>

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

如果您使用某种类型的库以编程方式控制转换(客户端javascript的对象和任何语言的库都可能需要这样做),那么您已经有了足够的控制权详细说明由什么改变了什么。这里有一些有趣的案例包括。

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

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

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

答案 3 :(得分:1)

您需要一个外部工具或库来将Xslt转换应用于Xml。如何执行此操作取决于您的编程环境,但对于.Net,XslCompiledTransform是用于将Xslt转换应用于一段Xml(内存中的文件或Xml)的类。

备选方案您可以使用Microsoft命令行工具xslt.exe - 您需要自己研究如何在其他编程语言/操作系统中执行相同的操作。