我们打算将我们的框架从msxml4迁移到msxml6。 我们在哪里使用msxsl.exe。 它似乎只支持MSXML版本高达4.0,作为命令行 msxsl.exe -u版本6.0 告诉我。 是否有msxsl.exe的后继者? 任何替代的命令行处理器?msxsl.exe的继任者?
9
A
回答
6
有很多方法可以替换现有的处理器,这取决于您需要的功能级别以及是否需要MSXML特定的功能。例如,有xsltproc这是libxslt的一部分(例如,可以从here获得一些Windows二进制文件)。 This页面为您提供了C#中的快速替换,但它们都改变了命令行用法,并且可能不会实现相同的MSXML扩展(xsltproc肯定不会)。
如果您只是对使用MSXML 6的简单命令行处理器感兴趣,那么您可能会比使用简单的JScript应用程序更糟糕。将下面的代码作为xsltr.js和运行为CSCRIPT msltr.js的input.xml template.xsl output.txt的:
var adTypeBinary = 1;
var adSaveCreateOverWrite = 2;
var adSaveCreateNotExist = 1;
try
{
var args = WScript.Arguments;
if(args.length < 3)
{
WScript.Echo("Usage: xsltr.js file.xml file.xsl output.txt");
WScript.Quit(1);
}
else
{
var xml = args(0);
var xsl = args(1);
var out = args(2);
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var xslDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
/* Create a binary IStream */
var outDoc = new ActiveXObject("ADODB.Stream");
outDoc.type = adTypeBinary;
outDoc.open();
if(xmlDoc.load(xml) == false)
{
throw new Error("Could not load XML document " + xmlDoc.parseError.reason);
}
if(xslDoc.load(xsl) == false)
{
throw new Error("Could not load XSL document " + xslDoc.parseError.reason);
}
xmlDoc.transformNodeToObject(xslDoc, outDoc);
outDoc.SaveToFile(out, adSaveCreateOverWrite);
}
}
catch(e)
{
WScript.Echo(e.message);
WScript.Quit(1);
}
不过是有一个理由,你不能使用msxsl? 4.0版本的MSXML从来不是标准安装,所以你将永远不得不手动安装它(尽管我认为它是随Office一起提供的)。您是否可以在需要处理的机器上部署第4版?
相关问题
- 1. InstallJammer的继任者?
- 2. XForms是否有继任者?
- 3. mrunit的继任者是什么?
- 4. GNU的nana库死了吗?是否有继任者在使用?
- 5. 单词预测 - 获取最常见的前任和后继者
- 6. 使用MSXSL.EXE使用CSV文件
- 7. 选择儿童(或继任者)元素作为内容
- 8. 如何从邻接矩阵获得前任和后继者
- 9. MachineBasicBlocks是否应该隐式落入其继任者?
- 10. 算法继任
- 11. C#继承(初学者)
- 12. 如何查询在拉力赛中有继任者的用户故事?
- 13. a * pathfinding - 后继者的费用
- 14. 作为字段的继承者摘要
- 15. 重写继承的获取者/设置者
- 16. 生产者 - 消费者使用任务
- 17. 任务继续执行多个任务
- 18. 连锁继续与任务
- 19. 任务与继续调度
- 20. Angular 2 - 从基类继承提供者
- 21. java继承随机类和调用者
- 22. 获取任务修改者
- 23. 竹建设者任务
- 24. Flex:所有的继承者都继承UIComponent和Container的所有属性
- 25. 搜索由继承者使用的继承类的方法/属性
- 26. 在MSBuild中重写继承的任务
- 27. 消费者/生产者任务的解决方案
- 28. 并行任务的组织者
- 29. 任何好的OpenID php消费者库?
- 30. 继续任务的所有任务完成