1

私は以下のXMLを持っています。

<Timesheet>
   <StartDate>2013-06-12T00:00:00</StartDate>
   <EndDate>2013-06-18T00:00:00</EndDate>
   <Details>
      <TimesheetDetail>
         <BusinessDate>2013-06-12T00:00:00</BusinessDate>
         <Site>
            <a:Id>0201</a:Id>
         </Site>
         <TotalDuration>180</TotalDuration>
         <WorkType>
            <a:Category>
               <b:_displayName>Work</b:_displayName>
               <b:_value>3</b:_value>
            </a:Category>
            <a:Code>Mgmnt</a:Code>
            <a:Description>Management</a:Description>
         </WorkType>
      </TimesheetDetail>
      <TimesheetDetail>
         <BusinessDate>2013-06-13T00:00:00</BusinessDate>
         <Site>
            <a:Id>0202</a:Id>
         </Site>
         <TotalDuration>240</TotalDuration>
         <WorkType>
            <a:Category>
               <b:_displayName>Time Off</b:_displayName>
               <b:_value>3</b:_value>
            </a:Category>
            <a:Code>Bereavement</a:Code>
            <a:Description>Bereavement Leave</a:Description>
         </WorkType>
      </TimesheetDetail>
   </Details>
   <Employee>
      <a:EmpUserId>314Test2</a:EmpUserId>
      <a:FirstName>314Test2</a:FirstName>
   </Employee>
</Timesheet>

Site の 1 つの列を持つテーブルを生成する XSLT を作成する必要があります。値は、各 Timesheetdetail の Site 属性と、StartDate と EndDate の間の各日の A 列から取得されます。TotalDuration 値は、BusinessDate と一致する上記で作成された列の値として移動する必要があります。複数の TimesheetDetails がある場合、余分な行が作成されます。

私が直面している問題は、StartDate と EndDate をループして、XSLT の日付ごとに列を動的に生成する方法です。その日付の「日」も表示する必要があります。それを XSLT で取得できますか?

4

1 に答える 1

0

このコードを試してみてください。試したことはありませんが、サイトを表示する方法は次のとおりです。

<xsl:aply-template select="Timesheet/details"/> 

これにより、TimesheetDetail内にあるすべてがループされます。

<xsl:template match="TimesheetDetail">
  <xsl:value-of select="Site/." />
</xsl:template>
于 2013-07-10T23:48:59.323 に答える