我有一个从 SQL 数据库填充的表。输入的大部分数据都有一个 ABN,我可以用它来查找电子邮件和姓名。有些数据没有 ABN,只有 UID。我不想在表中显示 UID,因为 98% 的时间都是不必要的,所以如果没有名称,我想使用 xsl:when 将名称字段更改为 UID。
以下是 XML 中两种情况的示例:
<?xml version="1.0" encoding="UTF-8"?>
<CourseData>
<row batchid="0" courseid="10101" createdon="04/03/2012 01:08PM" datecompleted="1:08 PM" datecompletedDateValue="1333483680000" lastupdatebyabn="999999" lastupdatebyuid="tsmith" lastupdateon="04/03/2012 01:08PM" num="2" respondentabn="999999" respondentemail="tsmith@test.com" respondentid="1" respondentname="Thomas Smith" respondentuid="tsmith"/>
<row batchid="0" courseid="10101" createdon="04/03/2012 01:08PM" datecompleted="1:08 PM" datecompletedDateValue="1333483697000" lastupdatebyabn="" lastupdatebyuid="jsmith" lastupdateon="04/03/2012 01:08PM" num="3" respondentabn="" respondentemail="" respondentid="2" respondentname=" " respondentuid="jsmith"/>
</CourseData>
这是我正在使用的 XSL,它显然不起作用。
<xsl:choose>
<xsl:when test="row[@respondentabn='']">
<label datafield="@respondentuid"></label>
</xsl:when>
<xsl:otherwise>
<label datafield="@respondentname"></label>
</xsl:otherwise></xsl:choose></td>
我怎样才能解决这个问题?
编辑:所以在与我的老板交谈后,他说我需要一个循环才能正常工作,但我真的不应该在 .xsl 中这样做。我修改了为我提供数据的 sql 以进行更改,回想起来,我可能一开始就应该想到这一点。