2013-12-12 49 views
0

XSL标签这是我的XML: “的UserRole *”如何编写动态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> 

对于XML标签除了我已经wriiten XSL代码lyke这样的:

<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

我真的不按照你的XSL,但你可以选择所有的*的UserRole的要素:

select="AUDITDATA/USERS/*[starts-with(name(), 'UserRoles.')]"