簡體   English   中英

XML 到 XSLT - 問題 - 重復 XML 元素

[英]XML to XSLT - Question - Repeating XML Elements

我有像這樣來自 XML 的數據....

   <DetailLine><FormField><Name>Vendor Item</Name> 
   <DisplayValue>0201029</DisplayValue><Value /><Value2 /> 
   </FormField><FormField><Name>Item Description</Name> 
   <DisplayValue>BOX JUNCTION HF AHC5111 10X10X</DisplayValue> 
   <Value>BOX JUNCTION HF AHC5111 10X10X</Value><Value2 />
    <DetailLine><FormField><Name>Vendor Item</Name> 
   <DisplayValue>0201040</DisplayValue><Value /><Value2 /> 
   </FormField><FormField><Name>Item Description</Name> 
   <DisplayValue>BOX JUNCTION HF A201608LP 20 X</DisplayValue> 
   <Value>BOX JUNCTION HF A201608LP 20 X</Value><Value2 />

我可以像這樣在 XSLT 中編碼,只要我確切知道我有多少行,它就可以工作....

<xsl:for-each 
  select="GeneratedDocument/Detail/DetailLine[10]/FormField">
<td>
<xsl:value-of select="DisplayValue"/>
</td>
</xsl:for-each>

但我希望它更聰明,只是說對於每個詳細信息行,將 10 個顯示值和 go 放到下一行。

有任何想法嗎? 謝謝。

我想將所有顯示值返回到每一列中,並為每個新的詳細信息行創建一個新行。

每個明細行有固定的 10 個顯示值。

抱歉所有編輯。 新來的。

希望此代碼生成 output:

<xsl:template match="GeneratedDocument">
    <table>
        <xsl:for-each select="Detail/DetailLine">
            <tr>
                <xsl:for-each select="FormField">
                    <td>
                        <xsl:value-of select="DisplayValue"/>
                    </td>
                </xsl:for-each>
            </tr>
        </xsl:for-each>
    </table>
</xsl:template>

此代碼創建一個表元素並使用兩個嵌套的“for-each”循環。 外部循環遍歷“Detail”元素中的每個“DetailLine”元素。 對於每個“DetailLine”元素,內部循環遍歷“DetailLine”元素中的每個“FormField”元素,並使用當前“FormField”元素的“DisplayValue”元素創建一個表格單元格(td 元素)。 內部循環將為每個“FormField”元素運行,並為每個元素創建一個新列。 外循環將為每個“DetailLine”元素運行,並為每個元素創建一個新行。 這樣,每行將有 10 列,“DisplayValue”元素將是每列的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM