【发布时间】:2023-03-29 22:51:01
【问题描述】:
我有以下输入
<?xml version="1.0" encoding="UTF-8"?>
<Input>
<Userlist>
<name>ABC</name>
<division>1</division>
<method>online</method>
<subject>M</subject>
<fee>10k</fee>
</Userlist>
<Userlist>
<name>BCD</name>
<division>2</division>
<method>Distance</method>
<fee>5k</fee>
<subject>C</subject>
</Userlist>
<Userlist>
<name>CDF</name>
<division>2</division>
<method>Direct</method>
<fee>15k</fee>
<subject>P</subject>
</Userlist>
<Userlist>
<name>FGH</name>
<division>55</division>
<method>Direct</method>
<fee>25k</fee>
<subject>E</subject>
</Userlist>
<Userlist>
<name>HKM</name>
<division>55</division>
<method>Direct</method>
<fee>40k</fee>
<subject>H</subject>
</Userlist>
</Input>
下面是预期的输出:要求是,基于方法值(那些是预定义的值)循环通过它们,如果出现更多,我们需要将相对值放在过滤器下。如果我们有相同的部门,内部过滤器也属于一个细节元素,如下所示。我什至不能放代码,因为它没有给出更近的地方。感谢您的帮助。
<?xml version="1.0" encoding="UTF-8"?>
<Output>
<AllUserslist>
<User>
<Methodtype>online</Methodtype>
<Filters>
<Filter>
<Section>1</Section>
<Details>
<Detail>
<Studentname>ABC</Studentname>
<Fee>10k</Fee>
<subject>M</subject>
</Detail>
</Details>
</Filter>
</Filters>
</User>
<User>
<Methodtype>Distance</Methodtype>
<Filters>
<Filter>
<Section>2</Section>
<Details>
<Detail>
<Studentname>BCD</Studentname>
<Fee>5k</Fee>
<subject>C</subject>
</Detail>
</Details>
</Filter>
</Filters>
</User>
<User>
<Methodtype>Direct</Methodtype>
<Filters>
<Filter>
<Section>2</Section>
<Details>
<Detail>
<Studentname>CDF</Studentname>
<Fee>15K</Fee>
<subject>P</subject>
</Detail>
</Details>
</Filter>
<Filter>
<Section>55</Section>
<Details>
<Detail>
<Studentname>FGH</Studentname>
<Fee>25K</Fee>
<subject>E</subject>
</Detail>
<Detail>
<Studentname>HKM</Studentname>
<Fee>40K</Fee>
<subject>H</subject>
</Detail>
</Details>
</Filter>
</Filters>
</User>
</AllUserslist>
</Output>
【问题讨论】:
-
您的预期输出格式不正确。还更新您当前的 XSLT
-
输出格式正确。我更新了。
-
datapower 是否支持 XSLT 2.0 和
for-each-group group-by? -
不,它没有。 DataPower 是带有一些奇怪变化的 XSLT 1.0。没有
for-each-group可用。
标签: xml xslt ibm-datapower