我有一个从SQL数据库填充的表。输入的大部分数据都会有一个ABN,我可以用它来查找电子邮件和姓名。有些数据没有ABN,只有一个UID。我不想在表中显示UID,因为它不需要98%的时间,所以我想在没有名称的情况下使用xsl:when将名称字段更改为UID。xsl:未按预期工作时
这里的2例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="[email protected]" 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,为我做了这些改变,回想起来,我可能应该首先想到这一点。
请出示XSL的一些预期输出,更表示在此''调用的上下文。测试'行[@respondentabn ='']'正在查找“respondentabn”等于零长度字符串的“行”。如果应用'CourseData'作为上下文节点,则它是真实的,因为存在一个这样的行。 –
2012-04-03 23:09:32