我编写此代码以将node-set分配给xsl:variable
<xsl:variable name="disableSelected">
<xsl:for-each select="rejectSignatureType">
<xsl:if test="disableInd = 'true'">
<xsl:value-of select="@signatureTypeId"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
但不是node-set,而是返回字符串值。这是我正在遍历的示例XML。
<rejectSignatureType signatureTypeId="closeActionSignaturetypeId1">
<disableInd>true</disableInd>
</rejectSignatureType>
<rejectSignatureType signatureTypeId="closeActionSignaturetypeId2">
<disableInd>false</disableInd>
</rejectSignatureType>
<rejectSignatureType signatureTypeId="closeActionSignaturetypeId3">
<disableInd>true</disableInd>
</rejectSignatureType>
有些人可以帮助如何在xsl:variable
中返回节点集。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以在单个XPath表达式中执行此操作:
<xsl:variable name="disableSelected"
select="rejectSignatureType[disableInd = 'true']/@signatureTypeId"/>
这会将变量设置为包含所有相关signatureTypeId
属性节点的节点集。