數據加載中……
          xslt 獲取 xml 數據的格式
          xml文件的格式
          <?xml version="1.0" encoding="UTF-8"?>
          <DataSets>
              <Metadata>
                  <ItemDef OID="I0001" Name="姓名" DataType="string" Length=""
                      SignificantDigits="" SASFieldName="" SDSVarName="" Origin=""
                      Comment="" DefaultValue="" Note="輸入您的名字"
                      RangeCheckRelationship="and">
                      <CodeListRef Name="" />
                      <Question>您的姓名?</Question>
                      <Control qualityControl="" operationType="" />
                  </ItemDef>
                  <ItemDef OID="I0002" Name="說明信息" DataType="text" Length=""
                      SignificantDigits="" SASFieldName="" SDSVarName="" Origin=""
                      Comment="" DefaultValue="7g" Note="" RangeCheckRelationship="and">
                      <CodeListRef Name="" />
                      <Question>您的詳細說明</Question>
                      <Control qualityControl="" operationType="" />
                  </ItemDef>
                  <ItemGroupDef OID="G0001" Name="個人描述" Repeating="yes"
                      IsReferenceData="0" SASDatasetName="" Domain="" Origin="" Purpose=""
                      Comment=""
                      Note="個人描述信息,包括:[r]&amp;lt;br/&amp;gt;[/r]1, 姓名[r]&amp;lt;br/&amp;gt;[/r]2, 詳細描述信息">
                      <ItemRef ItemOID="I0001" Name="姓名" OrderNumber="1"
                          Mandatory="no" />
                      <ItemRef ItemOID="I0002" Name="說明信息" OrderNumber="2"
                          Mandatory="no" />
                  </ItemGroupDef>
                  <FormDef OID="F0001" Name="預診-1" Repeating="yes"
                      Note="預診信息[r]&amp;lt;br/&amp;gt;[/r]請詳細輸入">
                      <ItemGroupRef ItemGroupOID="G0001" Name="個人描述"
                          OrderNumber="1" Mandatory="no" />
                  </FormDef>
                  <StudyEventDef OID="E0001" Name="新建診斷-1" Repeating="yes"
                      Type="Scheduled" Category="">
                      <FormRef FormOID="F0001" Name="預診-1" OrderNumber="1"
                          Mandatory="no" page="1" />
                  </StudyEventDef>
                  <VarDef OID="var_0" DataType="string" Lable="您的姓名?"
                      Remark="E0001.1//F0001.1//G0001#1.I0001" Domain="" Function="">
                      <ItemRef Varname="v0" ItemOID="I0001" Eventpath="E0001.1"
                          Formpath="F0001.1" ItemGrouppath="G0001#1" />
                  </VarDef>
                  <VarDef OID="var_1" DataType="text" Lable="您的詳細說明"
                      Remark="E0001.1//F0001.1//G0001#1.I0002" Domain="" Function="">
                      <ItemRef Varname="v0" ItemOID="I0002" Eventpath="E0001.1"
                          Formpath="F0001.1" ItemGrouppath="G0001#1" />
                  </VarDef>
              </Metadata>
              <DataSet Subject="0010">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="2" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0009">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="1" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0008">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="1" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0007">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="1" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0006">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="2" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0005">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="2" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0004">
                  <Event Name="abc">
                      <Data Value="1" VarRefOID="var_0" />
                      <Data Value="2" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0003">
                  <Event Name="abc">
                      <Data Value="niahoa" VarRefOID="var_0" />
                      <Data Value="gee " VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0002">
                  <Event Name="abc">
                      <Data Value="12" VarRefOID="var_0" />
                      <Data Value="3" VarRefOID="var_1" />
                  </Event>
              </DataSet>
              <DataSet Subject="0001">
                  <Event Name="abc">
                      <Data Value="qqq" VarRefOID="var_0" />
                      <Data Value="gg" VarRefOID="var_1" />
                  </Event>
              </DataSet>
          </DataSets>
          xslt文件的格式
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
          <xsl:strip-space elements="*"/>

          <xsl:template match="/">
                  <xsl:variable name="columnitems" select="http://VarDef"/>
                  <xsl:variable name="rowitems" select="http://DataSet"/>
                  
                  <xsl:call-template name="listcolumns">
                  <xsl:with-param name="items" select="$columnitems"/>
                  </xsl:call-template>

                  <xsl:call-template name="listrows">
                  <xsl:with-param name="citems" select="$columnitems"/>
                  <xsl:with-param name="ritems" select="$rowitems"/>
                  </xsl:call-template>
          </xsl:template>

          <xsl:template name="listcolumns">
              <xsl:param name="items"/>
              <xsl:text>SubjectCode,</xsl:text>
              <xsl:for-each select="$items">
                    <xsl:choose>
                        <xsl:when test="position() != last() and last() >= 2">
                             <xsl:value-of select="@OID"/>,<xsl:text/>
                        </xsl:when>
                        <xsl:otherwise>
                             <xsl:value-of select="@OID"/><xsl:text/>
                        </xsl:otherwise>
                      </xsl:choose>
              </xsl:for-each>
              <xsl:text> </xsl:text>
              <xsl:text>,</xsl:text>
              <xsl:for-each select="$items">
                    <xsl:choose>
                        <xsl:when test="position() != last() and last() >= 2">
                             <xsl:value-of select="@Label"/>,<xsl:text/>
                        </xsl:when>
                        <xsl:otherwise>
                             <xsl:value-of select="@Label"/><xsl:text/>
                        </xsl:otherwise>
                      </xsl:choose>
              </xsl:for-each>
              <xsl:text> </xsl:text>
          </xsl:template>

          <xsl:template name="listrows">
              <xsl:param name="citems"/>
              <xsl:param name="ritems"/>
              <xsl:for-each select="$ritems">
                      <xsl:text>"</xsl:text>
                      <xsl:value-of select="@Subject"/><xsl:text/>
                      <xsl:text>",</xsl:text>
                      <xsl:variable name="item" select="Event"/>
                      <xsl:call-template name="listrow">
                      <xsl:with-param name="dataitem" select="$item"/>
                      <xsl:with-param name="matchcitems" select="$citems"/>
                      </xsl:call-template>
              </xsl:for-each>
          </xsl:template>

          <xsl:template name="listrow">
              <xsl:param name="dataitem"/>
              <xsl:param name="matchcitems"/>
              <xsl:for-each select="$matchcitems">
                      <xsl:variable name="have">
                              <xsl:variable name="cellname" select="@OID"/>
                              <xsl:call-template name="printcell">
                              <xsl:with-param name="cn" select="$cellname"/>
                              <xsl:with-param name="celldatas" select="$dataitem"/>
                              </xsl:call-template>
                      </xsl:variable>
                    <xsl:choose>
                        <xsl:when test="position() != last() and last() >= 2">
                             <xsl:value-of select="$have"/>,<xsl:text/>
                        </xsl:when>
                        <xsl:otherwise>
                             <xsl:value-of select="$have"/><xsl:text/>
                        </xsl:otherwise>
                      </xsl:choose>
              </xsl:for-each>
              <xsl:text> </xsl:text>
          </xsl:template>

          <xsl:template name="printcell">
              <xsl:param name="cn"/>
              <xsl:param name="celldatas"/>
                  <xsl:for-each select="$celldatas/Data">
                      <xsl:if test="$cn = @VarRefOID">
                          <xsl:text>"</xsl:text>
                          <xsl:value-of select="@Value"/><xsl:text/>
                          <xsl:text>"</xsl:text>
                      </xsl:if>
                  </xsl:for-each>
          </xsl:template>

          </xsl:stylesheet>

          posted on 2008-05-07 10:41 java flex 結合 閱讀(517) 評論(0)  編輯  收藏 所屬分類: xml

          主站蜘蛛池模板: 通许县| 旬邑县| 淮安市| 万山特区| 南康市| 航空| 黄山市| 鹿邑县| 莱阳市| 金乡县| 永泰县| 高平市| 当阳市| 福建省| 饶阳县| 平顺县| 梁河县| 舟山市| 商洛市| 理塘县| 弥勒县| 芮城县| 灵川县| 龙南县| 尼玛县| 江山市| 仙桃市| 个旧市| 彰化县| 杨浦区| 修文县| 麻栗坡县| 高台县| 吉林省| 普定县| 缙云县| 辽宁省| 安阳市| 古蔺县| 栾城县| 大宁县|