有谁能告诉我,XSLT在这做什么?它是更长的XSLT文档的一部分。
<xsl:template match="node[child::attribute[@NAME='entity']]">
<xsl:choose>
<xsl:when test="child::attribute[@NAME='entity']/@VALUE='accessval'">
<xsl:element name="access">
<xsl:apply-templates />
</xsl:element>
</xsl:when>
<xsl:when test="child::attribute[@NAME='entity']/@VALUE='aclval'">
<xsl:element name="acl">
<xsl:apply-templates />
</xsl:element>
</xsl:when>
</xsl:choose>
</template>
谢谢!
答案 0 :(得分:1)
它会匹配node
元素子attribute
与NAME="entity"
元素的VALUE
元素,并且基于该attribute
元素的node
属性将access
重命名为acl
或<node>
<attribute NAME="entity" VALUE="accessval"/>
<!-- other elements here -->
</node>
,然后继续处理其子级,即:
<access>
<!-- result of applying templates to "attribute" and "other elements here" -->
</access>
它会产生
VALUE
如果acl
是&#34; aclval&#34;它会生成一个名为access
而不是<attribute NAME="entity" VALUE="something" />
的元素。
如果node
中有多个xsl:when
,那么xsl:choose
内的第一个匹配<node>
<attribute NAME="entity" VALUE="aclval"/>
<attribute NAME="entity" VALUE="accessval"/>
<!-- other elements here -->
</node>
就会获胜,即给定< / p>
access
结果元素为acl
,而不是{{1}},因为它会检查&#34; accessval&#34;之前&#34; aclval&#34;。