[英]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.