преемник msxsl.exe?

Мы намереваемся переместить нашу платформу от msxml4 до msxml6. Мы, где использование msxsl.exe пока еще. Это, кажется, поддерживает только версии MSXML до 4,0 как командная строка, которую msxsl.exe-u версия 6.0 говорит мне. Существует ли преемник msxsl.exe? Какой-либо альтернативный процессор командной строки?

8
задан Matthias Doringer 13 January 2010 в 16:15
поделиться

1 ответ

существуют много способов, которыми вы могли заменить существующий процессор, он просто зависит от того, какого уровня функциональности вы требуете и нужна ли вам определенная функциональность 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 на машинах, на которых необходимо сделать обработку?

6
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: