【发布时间】:2016-11-17 12:21:44
【问题描述】:
我有一些元素的请求,其结构如下:
<Request>
<Other>
...
</Other>
<Qualifiers>
<Options>
<Segment Number="1"/>
</Options>
<Offer>
<Column ColumnNumber="2.1"/>
<Record Number="2"/>
</Offer>
<Offer>
<Column ColumnNumber="1.1"/>
<Column EndColumnNumber="4.1" ColumnNumber="3.1"/>
<Record Number="1"/>
</Offer>
<Offer>
<Column ColumnNumber="5.1"/>
<Record Number="3"/>
</Offer>
<Fare>
<Basis>ABCDE</Basis>
</Fare>
</Qualifiers>
<Other>
...
</Other>
</Request>
从这个有效负载中,我需要在每次调用中使用单个 Offer 元素执行 3 个单独的请求。请求的其余部分应该被复制而不做任何更改,所以对于第一个 Offer,我的请求应该如下所示:
<Request>
<Other>
...
</Other>
<Qualifiers>
<Options>
<Segment Number="1"/>
</Options>
<Offer>
<Column ColumnNumber="2.1"/>
<Record Number="2"/>
</Offer>
<Fare>
<Basis>ABCDE</Basis>
</Fare>
</Qualifiers>
<Other>
...
</Other>
</Request>
第二个和第三个类比与第二个和第三个提议元素。
我使用 Camel,所以我尝试将其循环提供给 XSLT 参数,该参数是应该留下的元素的索引。所以,我尝试了:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/Request/Qualifiers/Offer[not($MY_IDX)]"/>
其中$MY_IDX 提供索引。经过一番搜索,我意识到它不起作用,因为not() 函数只接受并返回布尔值。
还有其他方法可以归档我的目标吗?
【问题讨论】: