Мы намереваемся переместить нашу платформу от msxml4 до msxml6. Мы, где использование msxsl.exe пока еще. Это, кажется, поддерживает только версии MSXML до 4,0 как командная строка, которую msxsl.exe-u версия 6.0 говорит мне. Существует ли преемник msxsl.exe? Какой-либо альтернативный процессор командной строки?
существуют много способов, которыми вы могли заменить существующий процессор, он просто зависит от того, какого уровня функциональности вы требуете и нужна ли вам определенная функциональность MSXML. Например, существует xsltproc, который является частью libxslt (может получить некоторые двоичные файлы окон от здесь , например). Этот страница дает вам, быстрая замена в 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 на машинах, на которых необходимо сделать обработку?