簡體   English   中英

如何在具有4列的一個表中顯示數據。注意:使用了兩個xsl:for-each語句

[英]How to display data in one table with 4 columns.Note: Two xsl:for-each statements are used

經過2個多星期的嘗試,我真的可以使用一些幫助。 到目前為止,我可以顯示3列屬性為testName,duration和result的列。 而最終屬性“存儲”將附加到生成的表中。 如何將所有屬性顯示在一個具有4列(testName,duration,結果和存儲)的表格中? 在此先感謝您的幫助。

xsl:for-each select =“ / cruisecontrol / build / t:TestRun / t:Results / t:UnitTestResult”

        <tr>
          <td>
            <xsl:value-of select="@testName"/>
          </td>
          <td>
            <xsl:value-of select="@duration"/>
          </td>
          <td>
            <xsl:value-of select="@outcome"/>
          </td>                                       
           </tr>
      </xsl:for-each>

xsl:for-each select =“ / cruisecontrol / build / t:TestRun / t:TestDefinitions / t:UnitTest”

    <tr>
      <td>
        <xsl:value-of select="@storage"/>
      </td>

    </tr>

在沒有看到實際的XML的情況下(發布文檔的TestRun部分的示例會很有用),您可以嘗試:

    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">

      <table>

        <xsl:apply-templates select="//build/Results/UnitTestResult"/>

      </table>
    </xsl:template>

  <xsl:template match="//build/Results/UnitTestResult">

    <xsl:variable name="ParentPosition" select="position()" />

    <tr>
      <td>
        <xsl:value-of select="$ParentPosition"/>
      </td>      
      <td>
        <xsl:value-of select="@testName"/>
      </td>
      <td>
        <xsl:value-of select="@duration"/>
      </td>
      <td>
        <xsl:value-of select="@outcome"/>
      </td>
      <td>
        <xsl:value-of select="ancestor::Results/TestDefinitions/UnitTest[$ParentPosition]/@storage"/>
      </td>
    </tr>

  </xsl:template>

</xsl:stylesheet>

請注意position()的用法以及在<xsl:value-of select中如何將其用作變量。 還要注意如何使用apply-templates避免xsl:for-each。 因為自上而下的方法在層次結構中保留了正確的position(),所以這更干凈。

我已將其應用於此XML(為簡單起見,您先前添加的內容的格式正確,刪除了名稱空間-您可能必須重新添加它們,盡管我不需要上述樣式表。

<?xml version="1.0" encoding="utf-8" ?>
<cruisecontrol project="RetailBuildAll">
  <request source="IntervalTrigger" buildCondition="ForceBuild">
    IntervalTrigger
    triggered a build (ForceBuild)
  </request>
  <modifications />
  <build date="2010-03-18 13:50:10" buildtime="00:52:57" error="true" buildcondition="ForceBuild">
    TestRun id="9dede87a-1e32-4796-a706-bd8c9484df6d"
    name="lx00551@ROCPWBUILDER41 2010-03-18 14:25:08"
    runUser="EKC1\lx00551"
    xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">>
    <Results>
      <UnitTestResult executionId="71197f46-0ce1-46bb-896c-94de56a8341d" testId="e0b1d5ad-1f54-e491-58ed-227d74752b17" testName="_AmountDueNotSet" computerName="ROCPWBUILDER41" duration="00:00:01.8571146" startTime="2010-03-18T14:25:13.1997766-04:00" endTime="2010-03-18T14:25:15.4653871-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d">
        <Output>
        </Output>
      </UnitTestResult>
      <UnitTestResult executionId="d23eb331-6f98-4d6e-b5ac-6cadf5cbc23e" testId="1284c514-fede-0eec-dca9-4a83d1df9eb0" testName="_AmountDueSet" computerName="ROCPWBUILDER41" duration="00:00:00.3020513" startTime="2010-03-18T14:25:15.4653871-04:00" endTime="2010-03-18T14:25:15.7778851-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d">
        <Output>
        </Output>
      </UnitTestResult>
      <TestDefinitions>
        <UnitTest name="SaveToArchiveItemThrowsExceptionWhenNotValid" storage="\retail\bin\DATA.retailplatform.imaging.imageobjectstest.dll" id="95af8a39-34e8-7b01-de6a-a647d9ee4053">
          <Css projectStructure="" iteration="" />
          <Owners>
            <Owner name="" />
          </Owners>
          <Execution id="700c3770-242a-4ee3-af98-110d2c31a1d7" />
          <TestMethod codeBase="x:/Retail/bin/DATA.RetailPlatform.Imaging.ImageObjectsTest.DLL" adapterTypeName="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter" className="DATA.RetailPlatform.Imaging.ImageObjects.LayeredImageTest, DATA.RetailPlatform.Imaging.ImageObjectsTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="SaveToArchiveItemThrowsExceptionWhenNotValid"
           expectedException="DATA.RetailPlatform.ShoppingCart.Conversion.InvalidForSaveToArchiveItemException, DATA.RetailPlatform.ShoppingCart.Conversion, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        </UnitTest>
        <UnitTest name="_RemoveEntryTitleMatchWhileNotUpgrading" storage="\retail\bin\softwaremanifesttest.dll" id="f0444c96-9751-23f2-2e5f-43114f036ed8">
          <Css projectStructure="" iteration="" />
          <Owners>
            <Owner name="" />
          </Owners>
          <Execution id="a1411bf5-8ee4-4e37-ba24-10398a325950" />
          <TestMethod codeBase="x:/Retail/bin/SoftwareManifestTest.DLL" adapterTypeName="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter" className="SoftwareManifestTest.SoftwareManifestManagerTest, SoftwareManifestTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="_RemoveEntryTitleMatchWhileNotUpgrading" />
        </UnitTest>
      </TestDefinitions>
    </Results>
  </build>
</cruisecontrol>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM