[英]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.