如何使用XSLT将此XML转换为HTML ..?

时间:2011-11-10 05:20:03

标签: xml xslt

以下是 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>

使用 XSLT 1.0 -

的HTML输出
<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之间的值为。 (前 - i=2
  3. 如果超过2个成员,则前2个成员之间会有逗号 介于2和3之间(Ex- i=1 i=3 i=5
  4. 如果属性dec="Y"然后<U>..</U>到该节点值

1 个答案:

答案 0 :(得分:0)

看起来像一个完全标准的分组问题。因此在XSLT 2.0中相当容易。在XSLT 2.0中使用xsl:for-each-group;如果您遇到XSLT 1.0,请使用Muenchian分组。阅读分组技术,如果你仍然被卡住,请回到这里。