Я с помощью JavaScript генерирую страницу html из xml и xsl. Получается список отсортированных записей(id### - шт.). Например
id124-12
id124-18
id132-8
После получения такой страницы я хочу суммировать например все значения id124 (в приведенном примере получается 18+12=30)
Как мне на JavaScript перебрать все значения по строкам и суммировать их или можно это сделать средствами XSLT в цикле for-each?
Подскажите пожалуйста
PS
вот код xml файла test.xml":
Код:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="XSLTFile.xsl"?>
<tag1>
<tag2>
<tag3 id="1321" number="72" />
<tag3 id="1337" number="322" />
<tag3 id="1321" number="69" />
<tag3 id="1337" number="331" />
<tag3 id="1337" number="28" />
<tag3 id="1321" number="74" />
<tag3 id="1337" number="37" />
<tag3 id="1321" number="63" />
<tag3 id="1321" number="4" />
</tag2>
</tag1>
вот код xsl файла XSLTFile.xsl:
Код:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="tag1/tag2/tag3">
<xsl:sort select="@id"/>
<xsl:value-of select="@id"/>
<i> / </i>
<xsl:value-of select="@number"/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
вот код html файла со скриптом:
Код:
<html>
<head>
<script language="JavaScript">
var source;
var style;
function init()
{
source = new ActiveXObject("Microsoft.XMLDOM");
source.async = false;
style = new ActiveXObject("Microsoft.XMLDOM");
style.async = false;
source.load("test.xml");
style.load("XSLTFile.xsl");
document.all.item("xslresult").innerHTML = source.transformNode(style);
return true;
}
</script>
</head>
<body onLoad="init()">
<div id="xslresult">
</div>
</body>
</html>