2013-12-12 85 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.')]"