javascript xml xsl取值及數(shù)據(jù)修改第1/2頁
更新時間:2008年06月21日 23:01:24 作者:
前幾天公司要用xml快速方便的存取屬性N多的數(shù)據(jù),跟sinoly合作研究了一下.做了一個小例子.
1.example.xml--主要數(shù)據(jù)文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="example.xsl"?>
<projects id="1">
<project title="一級標(biāo)題1" index="1">
<items isTrunk="false" title="二級標(biāo)題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="二級標(biāo)題1.2" id="items_2">
<result type="2">3</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
</project>
<project title="一級標(biāo)題2" index="2">
<items isTrunk="false" title="二級標(biāo)題2.1" id="items_3">
<result type="3">3</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
<items isTrunk="true" title="二級標(biāo)題2.2">
<item title="三級標(biāo)題2.2.1" id="item_1">
<result type="1">2</result>
<officer><![CDATA[居然是亂碼]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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="二級標(biāo)題2.3">
<item title="三級標(biāo)題2.3.1" id="item_3">
<result type="2">1</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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="一級標(biāo)題3" index="3">
<items isTrunk="false" title="二級標(biāo)題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="二級標(biāo)題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="二級標(biāo)題3.3" id="items_6">
<result type="2">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
<items isTrunk="true" title="二級標(biāo)題3.4">
<item title="三級標(biāo)題3.4.1" id="item_5">
<result type="1">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題3.4.2" id="item_6">
<result type="1">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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數(shù)據(jù)
<?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">
注意以下幾點(diǎn)
</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>
<!--責(zé)任人模板-->
<xsl:template match="officer">
<td width="9%" class="tright">責(zé)任人</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>
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="example.xsl"?>
<projects id="1">
<project title="一級標(biāo)題1" index="1">
<items isTrunk="false" title="二級標(biāo)題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="二級標(biāo)題1.2" id="items_2">
<result type="2">3</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
</project>
<project title="一級標(biāo)題2" index="2">
<items isTrunk="false" title="二級標(biāo)題2.1" id="items_3">
<result type="3">3</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
<items isTrunk="true" title="二級標(biāo)題2.2">
<item title="三級標(biāo)題2.2.1" id="item_1">
<result type="1">2</result>
<officer><![CDATA[居然是亂碼]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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="二級標(biāo)題2.3">
<item title="三級標(biāo)題2.3.1" id="item_3">
<result type="2">1</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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="一級標(biāo)題3" index="3">
<items isTrunk="false" title="二級標(biāo)題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="二級標(biāo)題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="二級標(biāo)題3.3" id="items_6">
<result type="2">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</items>
<items isTrunk="true" title="二級標(biāo)題3.4">
<item title="三級標(biāo)題3.4.1" id="item_5">
<result type="1">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題3.4.2" id="item_6">
<result type="1">0</result>
<officer><![CDATA[]]></officer>
<classified>1</classified>
<eligibility>0</eligibility>
</item>
<item title="三級標(biāo)題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數(shù)據(jù)
<?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">
注意以下幾點(diǎn)
</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>
<!--責(zé)任人模板-->
<xsl:template match="officer">
<td width="9%" class="tright">責(zé)任人</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>
相關(guān)文章
一個用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)
這幾天一直在研究xslt轉(zhuǎn)換xml為xhtml,前面文章有介紹 使用xslt將xml解析成xhtml 的文章2009-11-11使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法
使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法...2007-05-05powerbuilder(pb)中 xml的應(yīng)用一例
powerbuilder中的數(shù)據(jù)窗口真是好的不得了,工作基本上都是圍繞它做,很高效,這幾天項(xiàng)目上需要用導(dǎo)出xml文件,就用pb9(xml導(dǎo)出導(dǎo)入功能是從powerbuilder9.0增加的功能)做了一個demo以驗(yàn)證可行性2009-06-06