用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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章