加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将XSLT应用于XML文件

发布时间:2020-12-16 07:54:08 所属栏目:百科 来源:网络整理
导读:我意识到,我可能会后悔在我的余生中,但是…有没有办法将XSLT应用于 XML文件,而 XML文件没有明确的引用XSLT文件? 就个人而言,我认为XSLT的整体观点是,您可以对同一个原始XML文件应用多个不同的转换,以产生几个不同的结果.但是,如果必须在源XML文件中指定转换
我意识到,我可能会后悔在我的余生中,但是…有没有办法将XSLT应用于 XML文件,而 XML文件没有明确的引用XSLT文件?

就个人而言,我认为XSLT的整体观点是,您可以对同一个原始XML文件应用多个不同的转换,以产生几个不同的结果.但是,如果必须在源XML文件中指定转换,那么这不是真的有效.似乎要改变转换,你必须更改底层的原始数据文件,这似乎是错误的…

那么有一些方法可以创建一些文件,这些文件说“使用这个XML和这个XSLT并在浏览器窗口中渲染结果”?

编辑:

也许我的问题不清楚.

如果我打开记事本,写一个XML文件,并提及其中的XSLT文件的名称,然后当我双击XML文件时,Web浏览器应用指定的XSLT.有没有办法我可以说服浏览器做这个而不改变原来的XML文件?或者我将被迫搜索一个命令行XSLT处理器?

Is there some way of applying XSLT to an XML file without the XML file
having an explicit reference to the XSLT file?

当然.实际上,XSLT规范完全不依赖(提到)具有对XSLT样式表的引用来处理它的XML文件.

因此,可以通过许多不同的XSLT转换来处理相同的XML文件.

在XSLT 2.0及以上,XSLT转换甚至不需要应用相应的XML文档.

怎么办?

简短的答案:这是依赖于实现的 – 读取相应的XSLT处理器文档(例如XslCompiledTransform for .NET,Saxonica for Saxon,…等).

此外,几乎每个XSLT处理器都有一个用于从控制台窗口调用转换的命令行实用程序 – 再次检查相应的文档(msxsl.exe for MSXML,nxslt.exe for XslCompiledTransform,…等)

以下是我使用的XSLT处理器的一些连线:

这将调用MSXML 3处理器:

msxsl.exe %xml% %xsl%  -o %out% -u '3.0' -t %param[ name="value"]%

这调用MSXML 4处理器:

msxsl.exe %xml% %xsl%  -o %out% -u '4.0' -t %param[ name="value"]%

这将调用MSXML 6处理器:

msxsl.exe %xml% %xsl%  -o %out% -u '6.0' -t %param[ name="value"]%

这调用.NET XslCompiledTransform:

nxslt2.exe %xml% %xsl% -t  -o %out% %param[ name="value"]%

这将为XSLT 10调用AltovaXML(XML-SPY):

AltovaXML.exe -xslt1 %xsl% -in %xml% -out %out%%param[ name="value"]%

这将为XSLT 2.0调用AltovaXML(XML-SPY):

AltovaXML.exe -xslt2 %xsl% -in %xml% -out %out%%param[ name="value"]%

这调用Saxon 9.x(对于XSLT 2.0):

java.exe -Xms512M -Xmx512M  -jar C:xmlParsersSaxonVer.9.1.0.5Jsaxon9.jar   -t  -repeat:1 -o %out%  %xml%  %xsl%  %param[ name="value"]%

这调用XQSharp(XSLT 2.0):

XSLT.exe -s %xml% -o %out% -r 1 -t   %xsl% %param[ name="value"]%

在上面的所有上面,%xml%是XML文件的路径,%xsl%是主XSLT文件的路径,%out%是将包含转换输出的文件的路径.

%param [name =“value”]%是name = value参数规范的列表,这不是强制使用的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读