2013-04-04 46 views
-2

作爲XML和XSLT的新成員,我爲我的需求生成了一個代碼。不過,我想用XSL:模板來簡化我的XSLT。請教如何使用模板來完成我的下面的代碼。以下代碼的模板:

<xsl:variable name="d1"> 
<xsl:value-of select="ss:Cell[15]/ss:index"/> 
<xsl:choose> 
<xsl:when test="$d1=16"><XDT_WW2><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW2></xsl:when> 
<xsl:when test="$d1=17"><XDT_WW3><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW3></xsl:when> 
<xsl:when test="$d1=18"><XDT_WW4><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW4></xsl:when> 
<xsl:when test="$d1=19"><XDT_WW5><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW5></xsl:when> 
<xsl:when test="$d1=20"><XDT_WW6><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW6></xsl:when> 
<xsl:when test="$d1=21"><XDT_WW7><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW7></xsl:when> 
<xsl:when test="$d1=22"><XDT_WW8><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW8></xsl:when> 
<xsl:when test="$d1=23"><XDT_WW9><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW9></xsl:when> 
<xsl:when test="$d1=24"><XDT_WW10><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW10></xsl:when> 
<xsl:when test="$d1=25"><XDT_WW11><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW11></xsl:when> 
<xsl:when test="$d1=26"><XDT_WW12><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW12></xsl:when> 
<xsl:when test="$d1=27"><XDT_WW13><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW13></xsl:when> 
<xsl:when test="$d1=28"><XDT_WW14><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW14></xsl:when> 
<xsl:when test="$d1=29"><XDT_WW15><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW15></xsl:when> 
<xsl:when test="$d1=30"><XDT_WW16><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW16></xsl:when> 
<xsl:when test="$d1=31"><XDT_WW17><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW17></xsl:when> 
<xsl:when test="$d1=32"><XDT_WW18><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW18></xsl:when> 
<xsl:when test="$d1=33"><XDT_WW19><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW19></xsl:when> 
<xsl:when test="$d1=34"><XDT_WW20><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW20></xsl:when> 
<xsl:when test="$d1=35"><XDT_WW21><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW21></xsl:when> 
<xsl:when test="$d1=36"><XDT_WW22><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW22></xsl:when> 
<xsl:when test="$d1=37"><XDT_WW23><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW23></xsl:when> 
<xsl:when test="$d1=38"><XDT_WW24><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW24></xsl:when> 
<xsl:when test="$d1=39"><XDT_WW25><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW25></xsl:when> 
<xsl:when test="$d1=40"><XDT_WW26><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW26></xsl:when> 
<xsl:when test="$d1=41"><XDT_WW27><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW27></xsl:when> 
<xsl:when test="$d1=42"><XDT_WW28><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW28></xsl:when> 
<xsl:when test="$d1=43"><XDT_WW29><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW29></xsl:when> 
<xsl:when test="$d1=44"><XDT_WW30><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW30></xsl:when> 
<xsl:when test="$d1=45"><XDT_WW31><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW31></xsl:when> 
<xsl:when test="$d1=46"><XDT_WW32><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW32></xsl:when> 
<xsl:when test="$d1=47"><XDT_WW33><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW33></xsl:when> 
<xsl:otherwise><XDT_WW1><xsl:value-of select="ss:Cell[15]/ss:Data"/></XDT_WW1></xsl:otherwise> 
</xsl:choose> 
</xsl:variable> 

<xsl:variable name="d2"> 
<xsl:value-of select="ss:Cell[16]/ss:index"/> 
<xsl:choose> 
<xsl:when test="$d2=17"><XDT_WW3><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW3></xsl:when> 
<xsl:when test="$d2=18"><XDT_WW4><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW4></xsl:when> 
<xsl:when test="$d2=19"><XDT_WW5><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW5></xsl:when> 
<xsl:when test="$d2=20"><XDT_WW6><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW6></xsl:when> 
<xsl:when test="$d2=21"><XDT_WW7><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW7></xsl:when> 
<xsl:when test="$d2=22"><XDT_WW8><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW8></xsl:when> 
<xsl:when test="$d2=23"><XDT_WW9><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW9></xsl:when> 
<xsl:when test="$d2=24"><XDT_WW10><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW10></xsl:when> 
<xsl:when test="$d2=25"><XDT_WW11><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW11></xsl:when> 
<xsl:when test="$d2=26"><XDT_WW12><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW12></xsl:when> 
<xsl:when test="$d2=27"><XDT_WW13><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW13></xsl:when> 
<xsl:when test="$d2=28"><XDT_WW14><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW14></xsl:when> 
<xsl:when test="$d2=29"><XDT_WW15><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW15></xsl:when> 
<xsl:when test="$d2=30"><XDT_WW16><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW16></xsl:when> 
<xsl:when test="$d2=31"><XDT_WW17><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW17></xsl:when> 
<xsl:when test="$d2=32"><XDT_WW18><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW18></xsl:when> 
<xsl:when test="$d2=33"><XDT_WW19><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW19></xsl:when> 
<xsl:when test="$d2=34"><XDT_WW20><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW20></xsl:when> 
<xsl:when test="$d2=35"><XDT_WW21><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW21></xsl:when> 
<xsl:when test="$d2=36"><XDT_WW22><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW22></xsl:when> 
<xsl:when test="$d2=37"><XDT_WW23><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW23></xsl:when> 
<xsl:when test="$d2=38"><XDT_WW24><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW24></xsl:when> 
<xsl:when test="$d2=39"><XDT_WW25><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW25></xsl:when> 
<xsl:when test="$d2=40"><XDT_WW26><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW26></xsl:when> 
<xsl:when test="$d2=41"><XDT_WW27><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW27></xsl:when> 
<xsl:when test="$d2=42"><XDT_WW28><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW28></xsl:when> 
<xsl:when test="$d2=43"><XDT_WW29><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW29></xsl:when> 
<xsl:when test="$d2=44"><XDT_WW30><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW30></xsl:when> 
<xsl:when test="$d2=45"><XDT_WW31><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW31></xsl:when> 
<xsl:when test="$d2=46"><XDT_WW32><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW32></xsl:when> 
<xsl:when test="$d2=47"><XDT_WW33><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW33></xsl:when> 
<xsl:otherwise><XDT_WW2><xsl:value-of select="ss:Cell[16]/ss:Data"/></XDT_WW2></xsl:otherwise> 
</xsl:choose> 
</xsl:variable> 

... 

<xsl:variable name="e"> 
<xsl:value-of select="ss:Cell[28]/ss:index"/> 
<xsl:choose> 
<xsl:when test="$e=29"><XDT_WW15><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW15></xsl:when> 
<xsl:when test="$e=30"><XDT_WW16><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW16></xsl:when> 
<xsl:when test="$e=31"><XDT_WW17><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW17></xsl:when> 
<xsl:when test="$e=32"><XDT_WW18><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW18></xsl:when> 
<xsl:when test="$e=33"><XDT_WW19><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW19></xsl:when> 
<xsl:when test="$e=34"><XDT_WW20><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW20></xsl:when> 
<xsl:when test="$e=35"><XDT_WW21><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW21></xsl:when> 
<xsl:when test="$e=36"><XDT_WW22><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW22></xsl:when> 
<xsl:when test="$e=37"><XDT_WW23><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW23></xsl:when> 
<xsl:when test="$e=38"><XDT_WW24><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW24></xsl:when> 
<xsl:when test="$e=39"><XDT_WW25><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW25></xsl:when> 
<xsl:when test="$e=40"><XDT_WW26><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW26></xsl:when> 
<xsl:when test="$e=41"><XDT_WW27><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW27></xsl:when> 
<xsl:when test="$e=42"><XDT_WW28><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW28></xsl:when> 
<xsl:when test="$e=43"><XDT_WW29><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW29></xsl:when> 
<xsl:when test="$e=44"><XDT_WW30><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW30></xsl:when> 
<xsl:when test="$e=45"><XDT_WW31><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW31></xsl:when> 
<xsl:when test="$e=46"><XDT_WW32><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW32></xsl:when> 
<xsl:when test="$e=47"><XDT_WW33><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW33></xsl:when> 
<xsl:otherwise><XDT_WW14><xsl:value-of select="ss:Cell[28]/ss:Data"/></XDT_WW14></xsl:otherwise> 
</xsl:choose> 
</xsl:variable> 

而代碼邏輯重複了很多時間總共20 +變量。 任何幫助將不勝感激。

下面是XML文件的摘錄:

<?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?><Workbook  xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <LastAuthor>APS_OWNER</LastAuthor> <Created>2013-03-05T07:03:29</Created> <Version>11.6408</Version> </DocumentProperties> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>8445</WindowHeight> <WindowWidth>11115</WindowWidth> <WindowTopX>720</WindowTopX> <WindowTopY>375</WindowTopY> <RefModeR1C1/> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> 
<Styles> 
<Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font/> <Interior/> <NumberFormat/> <Protection/> </Style> 
<Style ss:ID="ColumnHeader"> <Alignment ss:Vertical="Bottom" ss:Horizontal="Center"/> <Font ss:FontName="Times New Roman" x:Family="Roman" ss:Size="10" ss:Bold="1" ss:Underline="Single"/> <Interior/> <NumberFormat/> </Style> 
<Style ss:ID="ColumnHeaderDate"> <Alignment ss:Vertical="Bottom" ss:Horizontal="Center"/> <Font ss:Size="10" ss:Bold="1" ss:Underline="Single"/> <Interior/> <NumberFormat ss:Format="[ENG][$-409]dd\-mmm\-yy;@"/> </Style> 
<Style ss:ID="NumberStyleBlueCell"> <Alignment ss:Horizontal="Right"/> <Font/> <Interior ss:Color="Cyan" ss:Pattern="Solid"/> <NumberFormat ss:Format="###,###,###.00"/> </Style> 
<Style ss:ID="TextStyleBlueCell"> <Alignment/> <Font/> <Interior ss:Color="Cyan" ss:Pattern="Solid"/> <NumberFormat/> </Style> 
<Style ss:ID="NumberStyle"> <Alignment ss:Horizontal="Right"/> <Font/> <Interior/> <NumberFormat ss:Format="#,##0"/> </Style> 
<Style ss:ID="NumberStyle2"> <Alignment ss:Horizontal="Right"/> <Font/> <Interior/> <NumberFormat ss:Format="####"/> </Style> 
<Style ss:ID="DateStyle"> <Alignment/> <Font/> <Interior/> <NumberFormat ss:Format="[ENG][$-409]dd\-mmm\-yy;@"/> </Style> 
<Style ss:ID="ColumnSum"> <Alignment ss:Horizontal="Right"/> <Font ss:Color="Blue"/> <Interior/> 
<NumberFormat ss:Format="###,###,###.00"/> </Style> 
<Style ss:ID="RowSum"> <Alignment ss:Horizontal="Right"/> <Font ss:Color="Red"/> <Interior/> 
<NumberFormat ss:Format="###,###,###.00"/> </Style> 

</Styles>  
<Worksheet ss:Name="NO_Details_Across">  
<Table ss:ExpandedColumnCount="47" ss:ExpandedRowCount="9978" x:FullColumns="1" x:FullRows="1"> 
<Row> 
<Cell><Data ss:Type="String">NO</Data></Cell> 
<Cell ss:StyleID="DateStyle"><Data ss:Type="DateTime">2013-03-05T07:03:28</Data></Cell> 
<Cell><Data ss:Type="String">NO</Data></Cell> 
<Cell><Data ss:Type="String">CNG</Data></Cell> 
<Cell><Data ss:Type="String">CNG</Data></Cell> 
<Cell><Data ss:Type="String">SAD</Data></Cell> 
<Cell><Data ss:Type="String">S039</Data></Cell> 
<Cell><Data ss:Type="String">CP4-XS</Data></Cell> 
<Cell><Data ss:Type="String">3SK263-5-TG-E</Data></Cell> 
<Cell><Data ss:Type="String">3SK263-E-5-ASY</Data></Cell> 
<Cell><Data ss:Type="String">3SK263-E-5-WDQ</Data></Cell> 
<Cell><Data ss:Type="String">NO PNX</Data></Cell> 
<Cell ss:StyleID="NumberStyle"><Data ss:Type="Number">0</Data></Cell> 
<Cell ss:StyleID="NumberStyle"><Data ss:Type="Number">468149</Data></Cell> 
<Cell ss:Index="16" ss:StyleID="NumberStyle"><Data ss:Type="Number">23280</Data></Cell> 
<Cell ss:Index="17" ss:StyleID="NumberStyle"><Data ss:Type="Number">23280</Data></Cell> 
<Cell ss:Index="18" ss:StyleID="NumberStyle"><Data ss:Type="Number">23280</Data></Cell> 
<Cell ss:Index="19" ss:StyleID="NumberStyle"><Data ss:Type="Number">46560</Data></Cell> 
<Cell ss:Index="20" ss:StyleID="NumberStyle"><Data ss:Type="Number">46560</Data></Cell> 
<Cell ss:Index="25" ss:StyleID="NumberStyle"><Data ss:Type="Number">69840</Data></Cell> 
<Cell ss:Index="26" ss:StyleID="NumberStyle"><Data ss:Type="Number">93120</Data></Cell> 
<Cell ss:Index="27" ss:StyleID="NumberStyle"><Data ss:Type="Number">69840</Data></Cell> 
<Cell ss:Index="28" ss:StyleID="NumberStyle"><Data ss:Type="Number">93120</Data></Cell> 
<Cell ss:Index="29" ss:StyleID="NumberStyle"><Data ss:Type="Number">116400</Data> </Cell> 
<Cell ss:Index="30" ss:StyleID="NumberStyle"><Data ss:Type="Number">116400</Data></Cell> 
<Cell ss:Index="31" ss:StyleID="NumberStyle"><Data ss:Type="Number">116400</Data> </Cell> 
<Cell ss:Index="32" ss:StyleID="NumberStyle"><Data ss:Type="Number">116399</Data></Cell> 
<Cell ss:Index="33" ss:StyleID="NumberStyle"><Data ss:Type="Number">139679</Data></Cell> 
<Cell ss:Index="34" ss:StyleID="NumberStyle"><Data ss:Type="Number">116399</Data></Cell> 
<Cell ss:Index="35" ss:StyleID="NumberStyle"><Data ss:Type="Number">139680</Data></Cell> 
<Cell ss:Index="37" ss:StyleID="NumberStyle"><Data ss:Type="Number">93120</Data></Cell> 
<Cell ss:Index="38" ss:StyleID="NumberStyle"><Data ss:Type="Number">116400</Data></Cell> 
<Cell ss:Index="39" ss:StyleID="NumberStyle"><Data ss:Type="Number">93120</Data></Cell> 
<Cell ss:Index="40" ss:StyleID="NumberStyle"><Data ss:Type="Number">93120</Data></Cell> 
<Cell ss:Index="41" ss:StyleID="NumberStyle"><Data ss:Type="Number">116400</Data></Cell> 
<Cell ss:Index="44" ss:StyleID="NumberStyle"><Data ss:Type="Number">69840</Data></Cell> 
<Cell ss:Index="45" ss:StyleID="NumberStyle"><Data ss:Type="Number">419040</Data></Cell> 
</Row> 
</Table> 
</Worksheet> 
</Workbook> 
+2

請,*編輯*的問題,並說明*問題* - 不是你嘗試的解決方案。我們需要:1)源XML文檔; 2)轉型的確切想要的結果; 3)解釋變革必須實施的任何要求/限制。 –

+0

源XML很大,它來自Excel XML文檔,其中我需要提取特定工作表上的所有數據。我怎樣才能在這裏發佈?對不起,但這是我第一次發帖。 –

+0

嗨Dimitre。我已經添加了我正在使用的XML文檔的摘錄。我試圖做的XSLT是讀取索引值,並根據它選擇一個XML元素(即作爲輸出的一部分。請讓我知道是否還需要提供其他信息。 –

回答

0

它看起來像你試圖匹配SS:細胞元素,其中的SS:指數屬性是在一定範圍內。所以,你會通過具有模板匹配這些

<xsl:template match="ss:Cell[@ss:Index > position()][not(@ss:Index > 47)]"> 

開始(注:SS:指數是一個屬性,讓你用@符號來訪問它)

在此你可以再創建該元素,並根據其索引命名,如下所示(請注意,此處使用屬性值模板創建元素名稱,花括號表示它是要評估的表達式,而不是字面輸出)

<xsl:element name="{concat('XDT_WW', @ss:Index - 14)}"> 
    <xsl:value-of select="ss:Data" /> 
</xsl:element> 

W這裏的單元的索引不在範圍內,你還會有一個模板來匹配這些

<xsl:template match="ss:Cell"> 
    <XDT_WW1> 
     <xsl:value-of select="ss:Data" /> 
    </XDT_WW1> 
</xsl:template> 

然後,您可以調用模板,像這樣

<xsl:apply-templates select="//ss:Cell[15]" /> 
<xsl:apply-templates select="//ss:Cell[16]" /> 
<xsl:apply-templates select="//ss:Cell[17]" /> 

XSLT總是會匹配更具體的模板第一(即索引在範圍內的那個)。實際上,爲了避免一些代碼的重複,你可以使一個模板成爲一個已命名的模板,並用一個帶有新元素編號的參數來調用它。試試這個XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 

    <xsl:output omit-xml-declaration="yes" indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:template match="/"> 
    <xsl:apply-templates select="//ss:Cell[15]" /> 
    <xsl:apply-templates select="//ss:Cell[16]" /> 
    <xsl:apply-templates select="//ss:Cell[17]" /> 
    </xsl:template> 

    <xsl:template match="ss:Cell[@ss:Index > position()][not(@ss:Index > 47)]"> 
    <xsl:call-template name="cell"> 
     <xsl:with-param name="elementNumber" select="number(@ss:Index) - 14" /> 
    </xsl:call-template> 
    </xsl:template> 

    <xsl:template match="ss:Cell" name="cell"> 
    <xsl:param name="elementNumber" select="1" /> 
    <xsl:element name="{concat('XDT_WW', $elementNumber)}"> 
     <xsl:value-of select="ss:Data" /> 
    </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

當適用於您的XML,下面是輸出

<XDT_WW2>23280</XDT_WW2> 
<XDT_WW3>23280</XDT_WW3> 
<XDT_WW4>23280</XDT_WW4> 
+0

感謝您的反饋,我真的很想向您展示我的整個XSLT。我不確定是否可以將您的代碼插入到我現有的代碼中,因爲我已經有一些例如

+0

Hi Tim,也許這是一個愚蠢的問題,我試過你的代碼,但它爲什麼要求GT和LT的值?我應該把這個價值放在什麼位置?可以設置爲固定值嗎?因爲我打算將此作爲自動化工作的一部分。 –

+0

輸入值爲gt:14 輸入值爲lt:48 old 90: new 90: 聲明 * 錯誤在第1行: ORA-31011:XML解析失敗 ORA-19202:XML處理中發生錯誤 LPX-00601:'ss:Cell [@ss:Index 14; position()] [@ ss:Index 48; 48]」 ORA-06512:在 「SYS.XMLTYPE」,線174 ORA-06512:在線108 –