Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt msxsl.exe的继承者?_Xslt_Msxml6_Msxsl - Fatal编程技术网

Xslt msxsl.exe的继承者?

Xslt msxsl.exe的继承者?,xslt,msxml6,msxsl,Xslt,Msxml6,Msxsl,我们打算将框架从msxml4迁移到msxml6。 我们还没有找到使用msxsl.exe的地方。 作为命令行,它似乎只支持最高4.0的MSXML版本 msxsl.exe-u版本6.0 告诉我。 是否有msxsl.exe的后续版本? 是否有其他命令行处理器?替换现有处理器的方法有很多,这取决于您需要的功能级别以及是否需要MSXML特定的功能。例如,有一个xsltproc,它是libxslt的一部分(例如,可以从中获取一些windows二进制文件)。page在C#中为您提供了一个快速替换,但两者都改变

我们打算将框架从msxml4迁移到msxml6。 我们还没有找到使用msxsl.exe的地方。 作为命令行,它似乎只支持最高4.0的MSXML版本 msxsl.exe-u版本6.0 告诉我。 是否有msxsl.exe的后续版本?
是否有其他命令行处理器?

替换现有处理器的方法有很多,这取决于您需要的功能级别以及是否需要MSXML特定的功能。例如,有一个xsltproc,它是libxslt的一部分(例如,可以从中获取一些windows二进制文件)。page在C#中为您提供了一个快速替换,但两者都改变了命令行用法,并且可能不会实现相同的MSXML扩展(xsltproc当然不会)

如果您只是对使用MSXML 6的简单命令行处理器感兴趣,那么您可能会比使用简单的JScript应用程序做得更糟。将以下代码另存为xsltr.js并作为cscript xsltr.js input.xml template.xsl output.txt运行:

var adTypeBinary=1;
var adSaveCreateOverWrite=2;
var adSaveCreateNotExist=1;
尝试
{
var args=WScript.Arguments;
如果(参数长度<3)
{
Echo(“用法:xsltr.js file.xml file.xsl output.txt”);
WScript.Quit(1);
}
其他的
{
var xml=args(0);
var xsl=args(1);
var out=args(2);
var xmlDoc=newActiveXObject(“Msxml2.DOMDocument.6.0”);
var xslDoc=newActiveXObject(“Msxml2.DOMDocument.6.0”);
/*创建一个二进制IStream*/
var outDoc=新的ActiveXObject(“ADODB.Stream”);
outDoc.type=adTypeBinary;
outDoc.open();
if(xmlDoc.load(xml)==false)
{
抛出新错误(“无法加载XML文档:“+xmlDoc.parseError.reason”);
}
if(xslDoc.load(xsl)==false)
{
抛出新错误(“无法加载XSL文档:“+xslDoc.parseError.reason”);
}
transformNodeToObject(xslDoc,outDoc);
outDoc.SaveToFile(out,adSaveCreateOverWrite);
}
}
捕获(e)
{
Echo(e.message);
WScript.Quit(1);
}
还是有理由不能使用msxsl?MSXML的4.0版本从来都不是标准安装,因此您必须始终手动安装它(尽管我认为它曾随Office附带)。您不能在需要进行处理的计算机上部署版本4吗