这是我的XML:
<AUDITDATA>
<USERS>
<Domain>DOMAUDIT</Domain>
<UserName>Aashu</UserName>
<PassWord>m0eYN2VM</PassWord>
<Description>1234</Description>
<UserType>AdminOps</UserType>
<UserRoles.Painter>YES</UserRoles.Painter>
<UserRoles.Driver>NO</UserRoles.Driver>
<UserRoles.Cook>YES</UserRoles.Cook>
<!-- like this there may be more roles also.-->
</USERS>
</AUDITDATA>
对于除“UserRoles。*”之外的XML标签,我已经使用了XSL代码来解决这个问题:
<xsl:template name="Users">
<xsl:call-template name="FormatTextData">
<xsl:with-param name="textValue" select="//UserName"/>
<xsl:with-param name="displayValue" select="'User Name='"/>
</xsl:call-template>
<xsl:call-template name="FormatTextData">
<xsl:with-param name="textValue" select="//PassWord"/>
<xsl:with-param name="displayValue" select="',Password='"/>
</xsl:call-template>
<xsl:call-template name="FormatTextData">
<xsl:with-param name="textValue" select="//Description"/>
<xsl:with-param name="displayValue" select="',Description='"/>
</xsl:call-template>
<xsl:call-template name="FormatTextData">
<xsl:with-param name="textValue" select="//UserType"/>
<xsl:with-param name="displayValue" select="',User Type='"/>
</xsl:call-template>
</xsl:template>
这对其他标签工作正常,如何为UserRoles标签编写,因为你可以看到没有修复角色,我想通过XSL文件中的一个代码块来处理所有角色。
问题是,如何为XML标签定义XSL,其TagName不是静态的,或者只有一部分是静态的。
请帮忙
答案 0 :(得分:0)
我并不真正关注您的XSL,但您可以通过以下方式选择所有UserRoles。*元素:
select="AUDITDATA/USERS/*[starts-with(name(), 'UserRoles.')]"