这是输入文件。
所有这些块被包裹在一个<allocfile>
未出现,不知道为什么标记? 所有这些块被包裹在一个顶层元素<xml>
<XML>
<AllocFile>
<alc>1</alc>
<No>11/10</No>
<DT>20090401</DT>
<G_H>147</G_H>
<FUN>125487</FUN>
<oH>11</oH>
<y>9</y>
<AMOUNT>8000000</AMOUNT>
<Code>033195</Code>
<hd1>1234</hd1>
</AllocFile>
<AllocFile>
<alc>2</alc>
<No>14/10</No>
<DT>20090401</DT>
<G_H>147</G_H>
<FUN>125487</FUN>
<oH>11</oH>
<y>9</y>
<AMOUNT>8400000</AMOUNT>
<Code>033195</Code>
<hd1>1234</hd1>
</AllocFile>
<AllocFile>
<alc>3</alc>
<No>74/10</No>
<DT>20090401</DT>
<G_H>147</G_H>
<FUN>125487</FUN>
<oH>11</oH>
<y>9</y>
<AMOUNT>8740000</AMOUNT>
<Code>033195</Code>
<hd1>1234</hd1>
</AllocFile>
<AllocFile>
<alc>2</alc>
<No>74/10</No>
<DT>20090401</DT>
<G_H>117</G_H>
<FUN>125487</FUN>
<oH>19</oH>
<y>9</y>
<AMOUNT>74512</AMOUNT>
<Code>033118</Code>
<hd1>1234</hd1>
</AllocFile>
<AllocFile>
<alc>3</alc>
<No>14/10</No>
<DT>20090401</DT>
<G_H>117</G_H>
<FUN>125487</FUN>
<oH>19</oH>
<y>9</y>
<AMOUNT>986541</AMOUNT>
<Code>033147</Code>
<hd1>1234</hd1>
</AllocFile>
</XML>
输出是
<Header1>
<Hd1>1234</Hd1>
<CodeHeader>
<Code>033195</Code>
<Header2>
<G_H>147</G_H>
<FUN>125487</FUN>
<oH>11</oH>
<y>9</y>
<allocheader>
<alc>1</alc>
<No>11/10</No>
<DT>20090401</DT>
<AMOUNT>8000000</AMOUNT>
</allocheader>
<allocheader>
<alc>2</alc>
<No>14/10</No>
<DT>20090401</DT>
<AMOUNT>8400000</AMOUNT>
</allocheader>
<allocheader>
<alc>3</alc>
<No>74/10</No>
<DT>20090401</DT>
<AMOUNT>8740000</AMOUNT>
</allocheader>
</Header2>
</CodeHeader>
<CodeHeader>
<Code>033118</Code>
<Header2>
<G_H>117</G_H>
<FUN>125487</FUN>
<oH>19</oH>
<y>9</y>
<allocheader>
<alc>2</alc>
<No>74/10</No>
<DT>20090401</DT>
<AMOUNT>74512</AMOUNT>
</allocheader>
</Header2>
</codeHeader>
<CodeHeader>
<Code>033147</Code>
<Header2>
<G_H>117</G_H>
<FUN>125487</FUN>
<oH>19</oH>
<y>9</y>
<allocheader>
<alc>3</alc>
<No>14/10</No>
<DT>20090401</DT>
<AMOUNT>986541</AMOUNT>
</allocheader>
</Header2>
</CodeHeader>
</Header1>
输入文件需要进行排序和多重键的基础上进行分组。 我继续使用concat
函数和Muenchian方法,但并没有从网络太大帮助。 我使用XSLT 1.0。
规则分组
该文件中的所有节点将具有
<hd1>
使用值1234..
此由键成为第一组,并在输出显示为<Header1>
- 用于分组的第二密钥是所述节点的代码。 具有相同价值的节点获得组合在一起。 出现。 代码头
第二个关键是该组的节点
G_H
,FUN
,oH
,y
。 如果所有这些对节点的相同值,它们会聚集在一起。 它出现在输出<Header2>
没有分组发生在节点上
<alc>
<No>
,<DT>
<AMOUNT>
他们每个组内不同的值。