2012-09-08 3 views
-3

내가 어떻게 customer.please 도움을 당 송장 총을 보여 xslt 시트와 함께 할 수 있을지 궁금해서. 재귀와 함께 최선을 다했지만 아무 것도 줄 수 없다 .for - 각 루프 만 아니라 송장 당 나에게 모든 제품의 총을 제공합니다 .. 어떤 아이디어xslt 인보이스에 합계를 합계

<customers> 
    <customer> 
    <clientname>troy madison</clientfname> 
    <invoices> 
    <invoiceDate>8/8/98</invoiceDate> 
     <product> 
     <PriceUnit>1000</PriceUnit> 
     <Ordered>2</Ordered> 
    </product> 
    <product> 
     <PriceUnit>5400</PriceUnit> 
     <Ordered>3</Ordered> 
    </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>1/4/98</invoiceDate> 
     <product> 
      <PriceUnit>300</PriceUnit> 
      <Ordered>4</Ordered> 
     </product> 
     <product> 
     <PriceUnit>6000</PriceUnit> 
     <Ordered>1</Ordered> 
    </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>03/5/99</invoiceDate> 
     <product> 
     <PriceUnit>549</PriceUnit> 
     <Ordered>1</Ordered> 
    </product> 
    <product> 
     <PriceUnit>320</PriceUnit> 
     <Ordered>2</Ordered> 
    </product> 
    </invoices> 
</customer> 
<customer> 
    <clientname>Morris</clientfname> 
    <invoices> 
     <invoiceDate>1/1/00</invoiceDate> 
     <product> 
      <PriceUnit>59</PriceUnit> 
      <Ordered>3</Ordered> 
     </product> 
     <product> 
      <PriceUnit>55</PriceUnit> 
      <Ordered>1</Ordered> 
     </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>11/1/01</invoiceDate> 
     <product> 
     <PriceUnit>10</PriceUnit> 
     <Ordered>2</Ordered> 
     </product> 
     <product> 
     <PriceUnit>54</PriceUnit> 
     <Ordered>1</Ordered> 
     </product> 
    </invoices> 
    <invoices> 
     <invoiceDate>03/2/01</invoiceDate> 
     <product> 
      <PriceUnit>30</PriceUnit> 
      <Ordered>1</Ordered> 
     </product> 
     <product> 
     <PriceUnit>299</PriceUnit> 
     <Ordered>1</Ordered> 
     </product> 
    </invoices> 
</customer> 

+2

xslt 스 니펫도 복사하면 도움이됩니다. 다른 사람들의 솔루션 외에도 솔루션을 해결할 수있는 해답을 얻을 수 있습니다. – randominstanceOfLivingThing

+1

* 질문을 수정하고 정확한 결과를 제공하십시오! –

답변

2

이 변환 :.

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

<xsl:template match="/*"> 
    <html> 
    <table border="1"> 
    <thead> 
     <tr> 
     <td>Name</td><td>Total</td> 
     </tr> 
    </thead> 
    <xsl:apply-templates/> 
    </table> 
    </html> 
</xsl:template> 

<xsl:template match="customer"> 
    <tr> 
    <td><xsl:value-of select="clientname"/></td> 
    <td><xsl:value-of select= 
    "sum(invoices/product/(PriceUnit*Ordered))"/></td> 
    </tr> 
</xsl:template> 
</xsl:stylesheet> 

다음과 같은 XML 문서 (심각, 부정 제공하는 텍스트를 수정 한 후 얻은)에 적용 :

<customers> 
    <customer> 
    <clientname>troy madison</clientname> 
    <invoices> 
    <invoiceDate>8/8/98</invoiceDate> 
     <product> 
     <PriceUnit>1000</PriceUnit> 
     <Ordered>2</Ordered> 
    </product> 
    <product> 
     <PriceUnit>5400</PriceUnit> 
     <Ordered>3</Ordered> 
    </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>1/4/98</invoiceDate> 
     <product> 
      <PriceUnit>300</PriceUnit> 
      <Ordered>4</Ordered> 
     </product> 
     <product> 
     <PriceUnit>6000</PriceUnit> 
     <Ordered>1</Ordered> 
    </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>03/5/99</invoiceDate> 
     <product> 
     <PriceUnit>549</PriceUnit> 
     <Ordered>1</Ordered> 
    </product> 
    <product> 
     <PriceUnit>320</PriceUnit> 
     <Ordered>2</Ordered> 
    </product> 
    </invoices> 
</customer> 
<customer> 
    <clientname>Morris</clientname> 
    <invoices> 
     <invoiceDate>1/1/00</invoiceDate> 
     <product> 
      <PriceUnit>59</PriceUnit> 
      <Ordered>3</Ordered> 
     </product> 
     <product> 
      <PriceUnit>55</PriceUnit> 
      <Ordered>1</Ordered> 
     </product> 
    </invoices> 
    <invoices> 
    <invoiceDate>11/1/01</invoiceDate> 
     <product> 
     <PriceUnit>10</PriceUnit> 
     <Ordered>2</Ordered> 
     </product> 
     <product> 
     <PriceUnit>54</PriceUnit> 
     <Ordered>1</Ordered> 
     </product> 
    </invoices> 
    <invoices> 
     <invoiceDate>03/2/01</invoiceDate> 
     <product> 
      <PriceUnit>30</PriceUnit> 
      <Ordered>1</Ordered> 
     </product> 
     <product> 
     <PriceUnit>299</PriceUnit> 
     <Ordered>1</Ordered> 
     </product> 
    </invoices> 
</customer> 
</customers> 

은 생산 (하나는 추측 할 수있는!) 원하는 결과 :

<html> 
    <table border="1"> 
     <thead> 
     <tr> 
      <td>Name</td> 
      <td>Total</td> 
     </tr> 
     </thead> 
     <tr> 
     <td>troy madison</td> 
     <td>26589</td> 
     </tr> 
     <tr> 
     <td>Morris</td> 
     <td>635</td> 
     </tr> 
    </table> 
</html>