XSLT - 循环使用相同名称的元素

时间:2013-06-13 15:15:18

标签: xslt

我正在尝试创建一个XSLT,将一些传入的XML数据转换为我们自己的专有XML模式格式。然而,传入的xml具有不同数量的重复“位置”元素(见下文),我一直试图弄清楚如何循环它们 - 我已设法创建一个变量来保存“位置”的最大数量使用'count'函数,但还没有成功地解决如何在XSLT中循环这个 - 我已经搜索了stackoverflow但是(这可能是我的无知)我无法找到我需要的确切内容。我是这一切的新手所以请原谅我,如果我有点密集。

<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <RqId>dwdqwfqrfrq</RqId>
    <StartDate>2013-06-13</StartDate>
    <EndDate>2014-06-12</EndDate>
    <AddressData>
        <Location id="A6439ebfe-c7f8-40a0-b95f-a0cc1ebfe7d0">
            <NumberAndStreet>1 Main Street</NumberAndStreet>
            <City>Chicago</City>
            <County>Cook</County>
            <State>IL</State>
            <ZipCode>60001</ZipCode>
        </Location>
        <Location id="A6439ebfe-c7f8-40a0-b95f-a0cc1ebfe7d1">
            <NumberAndStreet>2 Main Street</NumberAndStreet>
            <City>Chicago</City>
            <County>Cook</County>
            <State>IL</State>
            <ZipCode>60002</ZipCode>
        </Location>
        <Location id="A6439ebfe-c7f8-40a0-b95f-a0cc1ebfe7d2">
            <NumberAndStreet>3 Main Street</NumberAndStreet>
            <City>Chicago</City>
            <County>Cook</County>
            <State>IL</State>
            <ZipCode>60003</ZipCode>
        </Location>
        <Location id="A6439ebfe-c7f8-40a0-b95f-a0cc1ebfe7d3">
            <NumberAndStreet>4 Main Street</NumberAndStreet>
            <City>Chicago</City>
            <County>Cook</County>
            <State>IL</State>
            <ZipCode>60004</ZipCode>
        </Location>
        <Location id="A6439ebfe-c7f8-40a0-b95f-a0cc1ebfe7d5">
            <NumberAndStreet>5 Main Street</NumberAndStreet>
            <City>Chicago</City>
            <County>Cook</County>
            <State>IL</State>
            <ZipCode>60005</ZipCode>
        </Location>
    </AddressData>
</Root>

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

您正在考虑程序语言。 XSLT是一种声明性语言,没有“循环”元素列表的感觉。

只需写一个像

这样的模板
<xsl:template match="Location">
  ...
</xsl:template>

,它将应用于遇到的所有Location元素。