用xsl和xml加js處理
把下面的文字儲存成main.xsl
------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:usr="urn:the-xml-files:xslt"
>
<xsl:output method="text"/>
<ms:script language="JScript" implements-prefix="usr">
<![CDATA[
function processEquation(ops) {
var result=0, i;
for (i=0; i<ops.length; i++) {
switch(ops[i].nodeName) {
case "add":
result += parseFloat(ops[i].text); break;
case "sub":
result -= parseFloat(ops[i].text); break;
case "mul":
result *= parseFloat(ops[i].text); break;
case "div":
result = result / parseFloat(ops[i].text); break;
case "mod":
result = result % parseFloat(ops[i].text); break;
default:
return "Unsupport operation";
}
}
return result;
}
]]>
</ms:script>
<xsl:template match="/">
<!-- root template -->
result: <xsl:value-of
select="usr:processEquation(/equation/*)"/>
<!-- 在XMLSpy裡無法除錯js,會報無法定位usr名稱空間 -->
</xsl:template>
</xsl:transform>
---------------------------------------------------------------------------------
把下面的文字儲存成main.xml檔案
<?xml version="1.0" encoding="GB2312"?>
<?xml:stylesheet type="text/xsl" href="main.xsl"?>
<equation>
<add>3</add>
<sub>1</sub>
<mul>6</mul>
<add>8</add>
<div>4</div>
</equation>