江南才子 发表于 2021-6-29 10:35:01

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><!]></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><!]></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><!]></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><!]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </item>
            <item title="三级标题2.2.2" id="item_2">
                <result type="1">3</result>
                <officer><!]></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><!]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </item>
            <item title="三级标题2.3.2" id="item_4">
                <result type="2">1</result>
                <officer><!]></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><!]></officer>
            <classified>1</classified>
            <eligibility>0</eligibility>
      </items>
      <items isTrunk="false" title="二级标题3.2" id="items_5">
            <result type="4" units="元">9865764</result>
            <officer><!]></officer>
            <classified>1</classified>
            <eligibility>0</eligibility>
      </items>
      <items isTrunk="false" title="二级标题3.3" id="items_6">
            <result type="2">0</result>
            <officer><!]></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><!]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </item>
            <item title="三级标题3.4.2" id="item_6">
                <result type="1">0</result>
                <officer><!]></officer>
                <classified>1</classified>
                <eligibility>0</eligibility>
            </item>
            <item title="三级标题3.4.3" id="item_7">
                <result type="1">0</result>
                <officer><!]></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"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>
                            12阅读全文
页: [1]
查看完整版本: javascript xml xsl取值及数据修改第1/2页