Здравствуйте, VCoder, Вы писали:
Эй, господа линуксоиды, изобразите мне примерно следующее на линуховых средствах:
Здесь простенький стилшит примеяется к простеньклму документу
var xmlstr = "<object><name>apple</name><color>Red</color></object>";
var xsltstr = '<?xml version="1.0"?>' +
'<xsl:stylesheet ' +
' version="1.0" ' +
' xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> '+
' <xsl:output method="text"/> '+
' <xsl:template match="/object"> '+
' <xsl:value-of select="color"/> '+
' <xsl:text> </xsl:text> '+
' <xsl:value-of select="name"/> '+
' </xsl:template> '+
'</xsl:stylesheet>';
var xmldom, xsltdom;
try {
xmldom = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmldom.validateOnParse = true;
xmldom.async = false;
xmldom.resolveExternals = false;
xmldom.loadXML(xmlstr);
xsltdom = new ActiveXObject("MSXML2.DOMDocument.4.0");
xsltdom.validateOnParse = true;
xsltdom.async = false;
xsltdom.resolveExternals = false;
xsltdom.loadXML(xsltstr);
output = xmldom.transformNode(xsltdom);
WScript.echo(output);
}
catch(err) {
WScript.echo(err.description);
}
А так же и это — список компов в сети впихивается в эксель ! — потом его можно обрабатывать чз тот же скрипт но уже средствами экселя, а не из коммандной строки
// взято у Алекса Ширшова
var root = GetObject("LDAP://RootDSE");
var s = "LDAP://" + "cn=computers," + root.Get("RootDomainNamingContext")
var comps = GetObject(s)
var enumcomps = new Enumerator(comps);
var excel = WScript.CreateObject("Excel.Application");
excel.Workbooks.Add;
excel.Columns("A:A").ColumnWidth = 20;
excel.Columns("B:B").ColumnWidth = 20;
excel.visible = 1;
var j = 0;
for(var i = 1;!enumcomps.atEnd();enumcomps.moveNext(),i++,j++)
{
var comp = enumcomps.item();
var compname = comp.Name.substr(3);
excel.range("A" + i).FormulaR1C1 = compname;
excel.range("A" + i).Font.Bold = 1;
// excel.range("D" + i).FormulaR1C1 = comp.Processor;
try{
var c = GetObject("WinNT://CENTER/" + compname + "/Administrators,group");
var Locator = WScript.CreateObject("WbemScripting.SWbemLocator");
var Serv = Locator.ConnectServer(compname);
var cmp = Serv.Get("Win32_ComputerSystem=\" + compname + \"");
if (cmp.UserName != null)
excel.range("C" + i).FormulaR1C1 = cmp.UserName;
else
excel.range("C" + i).FormulaR1C1 = "None";
var members = new Enumerator(c.Members());
for(;!members.atEnd();members.moveNext(),i++)
{
var member = members.item();
excel.range("B" + i).FormulaR1C1 = member.Name;
}
i--;
}
catch(e){};
}
excel.range("A" + i).FormulaR1C1 = "Total " + j;
Все эти скрипты написаны на JS, но управляют внешними средствами.
В Линуксе в случае использования Питона и Перла придется сделать две библиотеки, которые реализуют те же самые возможности — управление внешней программой.
Надеюсь наглядно показано, что мощная библиотека попросту не нужна для JS ?