2011-07-12 5 views
2

に子供たちを一致させる方法を以下に私が添付画面内の1つのような出力を生成する必要がXSLTXMLは - 親

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes"/> 
    <xsl:template match="/"> 
     <html> 
      <body> 
       <table cellpadding="6" cellspacing="0" border="0" width="85%" align="left"> 
        <tr> 
         <td> 
          <table cellpadding="0" cellspacing="1" border="1" class="reporttable" width="100%"> 
           <tr> 
            <td class="tableheader" align="center">Claim No</td> 
            <td class="tableheader" align="center">Name</td> 
            <td class="tableheader" align="center">Gross Total Amount</td> 
            <td class="tableheader" align="center">Expense Type</td> 
            <td class="tableheader" align="center">CNumber</td> 
            <td class="tableheader" align="center">Code</td> 
           </tr> 
           <xsl:for-each select="//claims"> 
           <tr> 
            <td><xsl:value-of select="@Number"/></td> 
            <td><xsl:value-of select="@Fullname"/></td> 
            <td><xsl:value-of select="@GrossTotalAmount"/></td>          
            <xsl:for-each select="//row"> 
            <tr> 
             <td colspan="3"></td> 
             <td class="tablecontent1"><xsl:value-of select="@ExpenseType"/></td> 
             <td class="tablecontent1"><xsl:value-of select="@CNumber"/></td> 
             <td class="tablecontent1"><xsl:value-of select="@Code"/></td> 
             <td class="tablecontent1"><xsl:value-of select="@Party"/></td> 
             <td class="tablecontent1"><xsl:value-of select="@T8Code"/></td> 
            </tr> 
            </xsl:for-each> 
           </tr> 
           </xsl:for-each> 
          </table> 
         </td> 
        </tr> 
       </table> 
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 

と、入力XML

<claims Number="xQAJUN1048" Fullname="almond pdr" GrossTotalAmount="6747.00"> 
    <row element="item" CNumber="xQAJUN1048" ExpenseType="AC FIXED ASSET" Code="-" /> 
    <row element="item" CNumber="xQAJUN1048" ExpenseType="ADM CENTRE &amp; VAT/TAXES" Code="FEP" /> 
</claims> 
<claims Number="M11JUN1053" Fullname="almond pdr" GrossTotalAmount="450.00"> 
    <row element="item" CNumber="M11JUN1053" ExpenseType="ANT FIXED ASSET" Code="ASTON" /> 
</claims> 
<claims Number="xQAJUN1060" Fullname="almond pdr" GrossTotalAmount="240.00"> 
    <row element="item" CNumber="xQAJUN1060" ExpenseType="CDF FIXED ASSET" Code="ASTON" /> 
</claims> 

にあります。現時点では、すべての子レコードがすべてのマスターレコードに対してマップされています。

いずれかがこの上で私を導くことができるに:)

おかげ

:(によるサイトの制限

+0

あなたの質問を編集する必要がありますが、それは明確ではありません。ありがとう – Treemonkey

+0

子供は、ルート/クレーム/番号の番号とルート/クレーム/行/ CNumberのCN番号に基づいて、対応する親の下に表示されます。ありがとう:) – luckyluke

+0

+1努力のために。 –

答えて

2

に画像を投稿して申し訳ありませんができないあなたの仕事の99%を行っているようだ。場合私は正しく理解している、あなたはroot/claims/Numberroot/claims/row/CNumberの対応に従って、特定のマスターレコードのレコードをマップしたいと思う。あなたの質問の入力サンプルを与え、データは既に正しくグループ化されているため、XSLTの行を変更する必要があるようです。 。

ある

、これを変更します。これに、入力ドキュメント内のすべての行を選択

<xsl:for-each select="//row"> 

を、現在のコンテキスト内の行を選択

<xsl:for-each select="row"> 

を。この行を変更すると、対応するマスタレコードの下に子レコードが表示されます。

+0

@mzjn私はこのサイトの新規登録者で、サイトは10番目の投稿まで画像をアップロードすることを制限しています。 – luckyluke

+1

ありがとうGuru。これは私が探しているものです。私を修正/教えてくれてありがとう。 – luckyluke

+0

申し訳ありませんが機能を見落としました。今私はそれを受け入れました:) – luckyluke

関連する問題