Преобразование XLST из входного XML в выходной XML - PullRequest
0 голосов
/ 17 марта 2011

Структура ввода XML:

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value></item>
   </Order>
    <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
   <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

Вывод должен быть:

<Customer>
   <Order>
      <item><name>ID</name><value>11111</value><item>
   </Order>
   <Order>
      <item><name>ID</name><value>11111</value> </item>
   </Order>
</Customer>

<Customer>
  <Order>
      <item><name>ID</name><value>22222</value></item>
   </Order>
</Customer>
<Customer>
  <Order>
      <item><name>ID</name><value>33333</value></item>
   </Order>
</Customer>

Здесь . . . будет динамически поступать.Пожалуйста, кто-нибудь даст решение для этого преобразования в xslt на основе . .

1 Ответ

1 голос
/ 17 марта 2011

Это стандартная проблема группировки.В XSLT 2.0 используйте

<xsl:template match="Customer">
 <xsl:for-each-group select="Order" group-by="item/value">
  <Customer>
    <xsl:copy-of select="current-group()"/>
  </Customer>
 </xsl:for-each-group>
</xsl:template>

Если вы застряли на XSLT 1.0, это немного сложнее: посмотрите «Muenchian Grouping» (или много ответов Димитра Новатчева на вопросы на этом форуме).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...