javascript xml xsl取值及数据修改第1/2页

    1.example.xml–主要数据文件
    <?xml version=”1.0″ encoding=”UTF-8″?>

    <?xml:stylesheet type=”text/xsl” href=”example.xsl”?>

    <projects id=”1″>
        <project title=”一级标题1″ index=”1″>
            <items isTrunk=”false” title=”二级标题1.1″ id=”items_1″>
                <result type=”2″>1</result>
                <officer><![CDATA[]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
                <remark></remark>
            </items>
            <items isTrunk=”false” title=”二级标题1.2″ id=”items_2″>
                <result type=”2″>3</result>
                <officer><![CDATA[]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </items>
        </project>
        <project title=”一级标题2″ index=”2″>
            <items isTrunk=”false” title=”二级标题2.1″ id=”items_3″>
                <result type=”3″>3</result>
                <officer><![CDATA[]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </items>
            <items isTrunk=”true” title=”二级标题2.2″>
                <item title=”三级标题2.2.1″ id=”item_1″>
                    <result type=”1″>2</result>
                    <officer><![CDATA[居然是乱码]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
                <item title=”三级标题2.2.2″ id=”item_2″>
                    <result type=”1″>3</result>
                    <officer><![CDATA[<><>]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
            </items>            
            <items isTrunk=”true” title=”二级标题2.3″>
                <item title=”三级标题2.3.1″ id=”item_3″>
                    <result type=”2″>1</result>
                    <officer><![CDATA[]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
                <item title=”三级标题2.3.2″ id=”item_4″>
                    <result type=”2″>1</result>
                    <officer><![CDATA[]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
            </items>            
        </project>
        <project title=”一级标题3″ index=”3″>
            <items isTrunk=”false” title=”二级标题3.1″ id=”items_4″>
                <result type=”4″ units=”元”>25345</result>
                <officer><![CDATA[sinoly]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </items>
            <items isTrunk=”false” title=”二级标题3.2″ id=”items_5″>
                <result type=”4″ units=”元”>9865764</result>
                <officer><![CDATA[]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </items>
            <items isTrunk=”false” title=”二级标题3.3″ id=”items_6″>
                <result type=”2″>0</result>
                <officer><![CDATA[]]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </items>
            <items isTrunk=”true” title=”二级标题3.4″>
                <item title=”三级标题3.4.1″ id=”item_5″>
                    <result type=”1″>0</result>
                    <officer><![CDATA[]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
                <item title=”三级标题3.4.2″ id=”item_6″>
                    <result type=”1″>0</result>
                    <officer><![CDATA[]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
                <item title=”三级标题3.4.3″ id=”item_7″>
                    <result type=”1″>0</result>
                    <officer><![CDATA[]]></officer>
                    <classified>1</classified>
                    <eligibility>0</eligibility>
                </item>
            </items>
        </project>
    </projects>
    2.example.xsl–样式文件,很方便的取到xml数据

    <?xml version=”1.0″ encoding=”gb2312″?>

    <xsl:stylesheet version=”1.0″   xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>

        <!–根模板–>    
        <xsl:output method=”xml”/>

        <xsl:template match=”/”>    
            <xsl:apply-templates select=”projects/project”/>
            <h6>
                <button type=”submit” class=”btn1_mouseout” onmouseover=”this.className=’btn1_mouseover'” onmouseout=”this.className=’btn1_mouseout'” title=”提交”> 下一步</button>
            </h6>
        </xsl:template>

        <!–主题模板–>
        <xsl:template match=”project”>
            <TABLE border=”0″ cellspacing=”0″ cellpadding=”0″ class=”table”>
                <tr>
                    <td colspan=”5″ align=”center” class=”tright”>
                        <h2>
                            <xsl:number value=”position()” format=”一、”/><xsl:value-of select=”@title”/>
                        </h2>
                    </td>
                </tr>
                <xsl:apply-templates select=”items”/>
            </TABLE>
            <BR/>
        </xsl:template>

        <!–一级题干模板–>
        <xsl:template match=”items”>
            <tr>
                <td colspan=”2″ class=”tright”>
                    <xsl:number value=”position()” format=”1.”/><xsl:value-of select=”@title”/>
                </td>
                <xsl:choose>
                    <xsl:when test=”@isTrunk[.=’false’]”>
                        <xsl:apply-templates select=”result”/>
                        <xsl:apply-templates select=”officer”/>
                    </xsl:when>
                    <xsl:otherwise>
                        <td colspan=”3″ class=”tright” style=”color:blue;font-weight:bolder”>
                            注意以下几点
                        </td>
                        <xsl:apply-templates select=”item”/>
                    </xsl:otherwise>
                </xsl:choose>
            </tr>
        </xsl:template>

            <!–二级题干模板–>
        <xsl:template match=”item”>

          <tr>
            <td class=”tright” style=”padding-left:20px” colspan=”2″>
                <h4><xsl:number value=”position()” format=”(a).”/><xsl:value-of select=”@title”/></h4>
            </td>
                <xsl:apply-templates select=”result”/>
                <xsl:apply-templates select=”officer”/>
          </tr>
        </xsl:template>

        <!–选择框模板–>
        <xsl:template match=”result”>
                        <xsl:choose>
                            <xsl:when test=”@type = ‘1’”>
                                <td width=”15%”>
                                <xsl:element name=”select”>
                                    <xsl:attribute name=”name”>re_<xsl:value-of select=”../@id”/></xsl:attribute>
                                    <!–<select name=”select”>–>
                                        <xsl:choose>
                                            <xsl:when test=”.=’0′”>
                                                <option value=”0″ selected=”selected”>请选择 </option>
                                                <option value=”1″>符合</option>
                                                <option value=”2″>基本符合</option>
                                                <option value=”3″>不符合</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’1′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″ selected=”selected”>符合</option>
                                                <option value=”2″>基本符合</option>
                                                <option value=”3″>不符合</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’2′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″>符合</option>
                                                <option value=”2″ selected=”selected”>基本符合</option>
                                                <option value=”3″>不符合</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’3′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″>符合</option>
                                                <option value=”2″>基本符合</option>
                                                <option value=”3″ selected=”selected”>不符合</option>
                                            </xsl:when>                                        
                                        </xsl:choose>
                                        <!–</select>–>
                                    </xsl:element>
                                </td>
                            </xsl:when>
                            <xsl:when test=”@type = ‘2’”>
                                <td width=”15%”>
                                    <xsl:element name=”select”>
                                    <xsl:attribute name=”name”>re_<xsl:value-of select=”../@id”/></xsl:attribute>
                                        <xsl:choose>
                                            <xsl:when test=”.=’0′”>
                                                <option value=”0″ selected=”selected”>请选择 </option>
                                                <option value=”1″>是</option>
                                                <option value=”2″>否</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’1′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″ selected=”selected”>是</option>
                                                <option value=”2″>否</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’3′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″>是</option>
                                                <option value=”2″ selected=”selected”>否</option>
                                            </xsl:when>                        
                                        </xsl:choose>
                                    </xsl:element>
                                </td>
                            </xsl:when>
                            <xsl:when test=”@type = ‘3’”>
                                <td width=”15%”>
                                    <xsl:element name=”select”>
                                    <xsl:attribute name=”name”>re_<xsl:value-of select=”../@id”/></xsl:attribute>
                                        <xsl:choose>
                                            <xsl:when test=”.=’0′”>
                                                <option value=”0″ selected=”selected”>请选择 </option>
                                                <option value=”1″>有</option>
                                                <option value=”2″>无</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’1′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″ selected=”selected”>有</option>
                                                <option value=”2″>无</option>
                                            </xsl:when>
                                            <xsl:when test=”.=’3′”>
                                                <option value=”0″>请选择 </option>
                                                <option value=”1″>有</option>
                                                <option value=”2″ selected=”selected”>无</option>
                                            </xsl:when>                        
                                        </xsl:choose>
                                    </xsl:element>
                                </td>
                            </xsl:when>

                            <xsl:otherwise>
                                <td width=”15%”>
                                <xsl:element name=”textarea”>
                                    <xsl:attribute name=”name”>re_<xsl:value-of select=”../@id”/></xsl:attribute><xsl:value-of select=”.”/>
                                </xsl:element>
                                    <xsl:value-of select=”@units”/>
                                </td>
                            </xsl:otherwise>
                        </xsl:choose>

        </xsl:template>

            <!–责任人模板–>
        <xsl:template match=”officer”>
            <td width=”9%” class=”tright”>责任人</td>
            <td width=”11%”>
            <xsl:element name=”textarea”>
                <xsl:attribute name=”name”>of_<xsl:value-of select=”../@id”/></xsl:attribute>
                <xsl:value-of select=”.”/>
            </xsl:element>
            </td>
        </xsl:template>

    </xsl:stylesheet>

发表评论

发表评论