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

栏目: 编程语言 · XML · 发布时间: 6年前

内容简介:前几天公司要用xml快速方便的存取属性N多的数据,跟sinoly合作研究了一下.做了一个小例子.
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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms for Image Processing and Computer Vision

Algorithms for Image Processing and Computer Vision

Parker, J. R. / 2010-12 / 687.00元

A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing with......一起来看看 《Algorithms for Image Processing and Computer Vision》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码