繁体   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