我有两个这样的模板...一个用于创建普通包名,另一个用于追加" - 非"如果它通过某些条件,如图所示
<xsl:template match="text()" name="checkForAgency">
<xsl:param name="Name"/>
<xsl:param name="Agency"/>
<xsl:if test="contains($Agency,'AG') ">
<xsl:value-of select="concat($Name,' - Non')"/>
</xsl:if>
</xsl:template>
<xsl:template match="text()" name="createPackageName">
<xsl:param name="Type"/>
<xsl:if test="contains($Type,'NEW')">
<xsl:value-of select="concat('New',' Goal')"/>
</xsl:if>
<xsl:if test="contains($Type,'AMD')">
<xsl:value-of select="concat('Amended',' Goal')"/>
</xsl:if>
<xsl:if test="contains($Type,'REN') or contains($Type,'ARN')">
<xsl:value-of select="concat('Renewal',' Goal')"/>
</xsl:if>
</xsl:template>
从
调用这些模板<xsl:variable name="NonAgencyPackageName">
<xsl:call-template name="createPackageName">
<xsl:with-param name="Type" select="ID"/>
</xsl:call-template>
</xsl:variable>
<xsl:element name="PackageName">
<xsl:call-template name="checkForAgency">
<xsl:with-param name="Name" select="$NonAgencyPackageName"/>
<xsl:with-param name="Agency" select="Output"/>
</xsl:call-template>
</xsl:element>
如果ID有新的&#39;,则包名称应为新目标,如果输出具有&#39; AG&#39;,则名称应为新目标 - 非。 其他名称应该是新的目标。我只想要两个单独的模板。我现在变得空虚了。请帮助我实现这个目标以及如何纠正它?
答案 0 :(得分:0)
猜测,XPath <body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<input type="file" file-reader="fileContent" />
<button type="button" ng-click="save(fileContent);">Save</button>
<div>{{fileContent}}</div>
</body>
和$scope.save = function(data)
{
console.log(data)
}
没有选择您期望的内容,因此所有条件都失败了。由于您不提供任何XML输入,因此无法确定。
问自己几个问题:
只有存在Output子元素并且其字符串值包含序列&#39; AG&#39;时,您生成的PackageName元素才是非空的。它将包含字符串&#39; New Goal - Non&#39;仅当输出子项包含&#39; AG&#39;并且ID子项包含NEW。创作中的任何力量都无法使其具有“新目标”的价值,因为模板CheckForAgency会产生一个以&#39;结尾的值。 - 非&#39;或根本没有输出。 (您可能希望了解XSLT中的选择/何时指令。)