我敢肯定,这将是一个非常简单的问题。我有一个通过 XSL 转换的 xml 文档。此 xml 的重要部分如下所示:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Transaction>
<EnrollmentModel>
<FutureContributionsModel>
<FutureContributionsElectionType>ACertainThirdParty</FutureContributionsElectionType>
</FutureContributionsModel>
</EnrollmentModel>
<Transaction>
</root>
如果值<FutureContributionsElectionType>
确实等于,我想添加以下内容ACertainThirdParty
:
<fo:table-row>
<fo:table-cell>
<fo:block font-family="verdanaPS" font-size="9" padding-bottom="15px" padding-top="10px">
The Participant has successfully opted in to use ACertainThirdParty as the managed provider for the account.
</fo:block>
</fo:table-cell>
</fo:table-row>
请注意,只有一个第三方,所以我不需要为自定义文本获取节点的值,我可以在那里硬编码它。
如果值<FutureContributionsElectionType>
不等于ACertainThirdParty
,我不想添加一大堆其他东西。
这是我尝试过的:
所以这似乎是<xsl:choose>
和<xsl:when>
/的工作<xsl:otherwise>
,对吧?这是我得到的:
<xsl:choose>
<xsl:when test="FutureContributionsModel/FutureContributionsElectionType='ACertainThirdParty'">
<fo:table-row>
<fo:table-cell>
<fo:block font-family="verdanaPS" font-size="9" padding-bottom="15px" padding-top="10px">
The Participant has successfully opted in to use ACertainThirdParty as the managed provider for the account.
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:when>
<xsl:otherwise>
<fo:table-row>
<fo:table-cell>
...
Lots of stuff
...
</fo:table-cell>
</fo:table-row>
</xsl:otherwise>
</xsl:choose>
但是当我转换它时,否则代码会被命中而不是正确的代码(在我的 xml 中,值确实是ACertainThirdParty
. 我的猜测是我的问题是我不知道 XPath,所以我可能假设我可以做的事情我不能。这是怎么回事?