2011-06-17 12 views
1

私はXSLTを初めて使用しています。 Ruby ActiveResource形式のXMLに変換したいXMLがあります。 XSLTコードで私を助けてください。ありがとうございました。カスタムXMLをRuby ActiveResource XMLフォーマットに変換する方法

XML入力

<PARM> 
<PC>0</PC> 
<PMT NM="THEME" DN="THEME" IR="0" T="0"> 
    <PV V="fast" L="" H="" C="4"/> 
</PMT> 
<PMT NM="INGREDIENTS" DN="INGREDIENTS" IR="0" T="0"> 
    <PV V="chicken" L="" H="" C="5"/> 
    <PV V="tomato" L="" H="" C="12"/> 
</PMT> 
</PARM> 

必要なXML出力

<facet-groups type="array"> 
<facet-group> 
    <name>THEME</name> 
    <facets type="array"> 
    <facet> 
     <name>fast</name> 
     <count>4</count> 
    </facet> 
    </facets> 
</facet-group> 
<facet-group> 
    <name>INGREDIENTS</name> 
    <facets type="array"> 
    <facet> 
     <name>chicken</name> 
     <count>5</count> 
    </facet> 
    <facet> 
     <name>tomato</name> 
     <count>12</count> 
    </facet> 
    </facets> 
</facet-group> 
</facet-groups> 

助けてください。ありがとうございました。

+0

たベースでは? –

答えて

2

これは、他の言葉で@LarsHです:あなたは `PMT`配列を定義

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:strip-space elements="*"/> 
    <xsl:output indent="yes"/> 

    <xsl:template match="PARM"> 
     <facet-groups type="array"> 
      <xsl:apply-templates select="PMT"/> 
     </facet-groups> 
    </xsl:template> 

    <xsl:template match="PMT"> 
     <facet-group> 
      <name><xsl:value-of select="@NM"/></name> 
      <facets type="array"> 
       <xsl:apply-templates select="PV"/> 
      </facets> 
     </facet-group> 
    </xsl:template> 

    <xsl:template match="PV"> 
     <facet> 
      <name><xsl:value-of select="@V"/></name> 
      <count><xsl:value-of select="@C"/></count> 
     </facet> 
    </xsl:template> 

</xsl:stylesheet> 
+0

コードのためにありがとうございました。はい、次回は、私が書いたコードを書き留めておきます。ありがとうございました。 – user374760

+0

ようこそ。 –

+0

質問と一致するようにタイトルを変更しました。気にするなら元に戻すことができます。 –

2

@Keokiは言ったように、解決策全体を提供することが適切になる前に、あなたがしたことの詳細を表示する必要があります。しかし、あなたは

  • facet-groups要素とその内の出力テンプレートマッチング「PARM」を、作成し、始めるために、出力する、子供

  • テンプレートマッチング「PMT」にテンプレートを適用しますfacet-group要素は、子供<name><facets>、後者の中で、子供

  • 子供<name>及び01とfacet要素を出力するテンプレートマッチング「PV」、にテンプレートを適用しますあなたに良いスタートを与える

うまくいけば。

+0

+1の答えは "少なくともXSLTを少し試してください" :) –

関連する問題