如何将XML文件与XSLT文件进行链接?
http://en.wikipedia.org/wiki/XSLT
或
http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog
的例子似乎是独立的XML和XSLT文件。他们不需要被链接?或者你会以某种方式将它们放入同一个文件中?否则,一个文件如何知道如何从另一个文件中吸取数据?
您可以将XML声明
<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>
这是要放入XML(数据)文件吗?这是唯一的方法,还是可以告诉XSLT文件从哪个XML文件获取数据,或者是否有第三个文件包含带有XSLT文件的XML文件? – 2010-08-11 08:48:43
如果您使用Altova XMLSpy,则可以在子句下添加例如。你可以在那里使用相对或绝对的URL /路径[这里的评论解析器好像占用了我网址的http://前缀]。其他工具可能具有相似的语法。如果可以在XSL文件中使用某些标准语法(因为有这种情况,这种情况下XML文件是远程的,您不能触摸它) – 2014-08-15 18:05:50
替代方案可能是将XML文件包含到另一个XML中文件以某种方式指定了样式表,但不知道这是否简单(可能需要专门编写XPath等) – 2014-08-15 18:10:12
后加上这个,你需要一个外部工具或库应用XSLT转换为XML。你如何做到这一点取决于你的编程环境,但是对于.Net,XslCompiledTransform是用于将Xslt转换应用于一片Xml(文件或内存中的Xml)的类。
另外,您可以使用Microsoft命令行工具xslt.exe - 您需要自己研究如何在其他编程语言/操作系统中执行相同的操作。
您也可以在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>
如果它不是IE? – 2010-08-11 10:41:31
你有样品在:http://www.w3schools.com/xml/xml_parser.asp 关于如何在现代浏览器中做到这一点:) – 2010-08-11 10:59:43
一个文件不知道“在数据吸”其他文件,因为这些文件是不是会做处理。
某种XSLT处理器可以做到这一点,它将被告知要处理什么的方式各不相同,因此它可以处理不同的用例。
在呈现整个XML文档的变换时,它被显示在浏览器中,则处理指令的情况下:
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
(真正它应该是“文本/ xml”的该类型因为这是一个XSL文档的MIME类型,但这是浏览器战争的尾声,浏览器功能的实现通常比常识的速度更快)。
如果您使用某种类型的库以编程方式控制转换(对于客户端JavaScript和任何语言的库都有对象,您可能需要这样做),那么您已经有足够的控制权详细说明由什么改变了什么。这里包括一些有趣的案例。
你甚至可以拥有一个包含内容节点和变换节点的文档,挑选出来并运行变换。
如果您在多个XML文档上运行相同的转换,调用某种类型的“PreCompile()”方法或类似方法通常会更高效,这会在该调用中受到影响,从而使所有后续转换。
您可以将值传递给XSLT中的顶级参数。
我同意一些W3Schools页面,比如那个,是不够的。他们可以很容易地提到链接样式表,就像[XSLT - Transformation](http://www.w3schools.com/xsl/xsl_transformation.asp)中所做的那样。 – user34660 2015-07-11 20:48:17