Как преобразовать этот XML в HTML, используя XSLT ..? - PullRequest
0 голосов
/ 10 ноября 2011

Ниже приведен фрагмент кода XML -

<Groups>
  <Group i=1>
    <Member t="P.M" dec="Y">ABC</Member>
    <Member t="P.L">PQR</Member>
    <Member t="M">XYZ</Member>
  </Group>
  <Group i=2>
    <Member t="M" dec="Y">ABC</Member>
    <Member t="M">PQR</Member>  
  </Group>
  <Group i=3>
    <Member t="P.L" dec="Y">ABC</Member>
    <Member t="M">PQR</Member>  
    <Member t="M">XYZ</Member>  
  </Group>
  <Group i=4>
    <Member t="M">ABC</Member>
    <Member t="M" dec="Y">PQR</Member>  
  </Group>
  <Group i=5>
    <Member t="M">ABC</Member>
    <Member t="M" dec="Y">PQR</Member>  
    <Member t="M" dec="Y">XYZ</Member>  
  </Group>
  <Group i=6>
    <Member t="M" dec="Y">ABC</Member>
  </Group>

</Groups>

Требуемый вывод HTML с использованием XSLT 1.0 -

<U>ABC</U>, P.M, PQR, P.L and XYZ, M
<U>ABC</U> and PQR, MM
<U>ABC</U>, P.L, PQR and XYZ, MM
ABC and <U>PQR</U>, MM
ABC, <U>PQR</U> and <U>XYZ</U>, MM
<U>ABC</U>, M

Описание -

  1. Каждое значение узла добавляется значением атрибута через запятую.
  2. Если 2 члена, то и между значением Node и Attribute. (Ex- i=2)
  3. Если более двух членов, то запятая между первыми двумя членами и и между 2 и 3 членами (например, i=1 i=3 i=5)
  4. Если атрибут dec="Y", то <U>..</U> для этого значения узла

1 Ответ

0 голосов
/ 10 ноября 2011

Похоже на совершенно стандартную проблему группировки. Поэтому значительно проще в XSLT 2.0. Используйте xsl:for-each-group в XSLT 2.0; используйте мюнхенскую группировку, если вы застряли в XSLT 1.0. Читайте о методах группировки и возвращайтесь сюда, если вы все еще застряли.

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