2011-11-10 32 views
0

以下是XML一段代碼 -如何使用XSLT將此XML轉換爲HTML ..?

<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件,則逗號第一2名成員和 一個和2和3部件之間之間(EX- i=1 i=3 i=5
  4. 如果屬性dec="Y"然後<U>..</U>到該節點值

回答

0

看起來像一個完全標準的分組問題。因此在XSLT 2.0中相當容易。在XSLT 2.0中使用xsl:for-each-group;如果您遇到XSLT 1.0,請使用Muenchian分組。如果你仍然陷入困境,請閱讀分組技巧,然後回到這裏。

+0

感謝您的幫助。是的,這次我會嘗試使用任一解決方案或問題再次回來:) – John