0
我很感激任何人都可以幫助我。我正嘗試使用相應的XSLT轉換將此XML輸出到CSV文件中。用戶具有分配給他/她的許多角色和組。一些角色直接分配,另一些則通過組分配。我想根據分配給她這個樣子每個角色或組用戶新行:XSLT到CSV:輸出元素到多行
User;Account;Service;Group;Role
Natalie Petit; petna; S1; G1; R1;
Natalie Petit; petna; S1; G1; R2;
Natalie Petit; petna;S2;;R1;
Natalie Petit; petna;S2;;R3;
這是XML源:
<?xml version="1.0" encoding="UTF-8"?>
<provider>
<service>
<name>S1</name>
<group>
<name>G1</name>
<role>
<name>R1</name>
<name>R2</name>
</role>
</group>
</service>
<service>
<name>S2</name>
<group/>
<role>
<name>R1</name>
<name>R3</name>
</role>
</service>
<user>
<name>Natalie Petit</name>
<account>petna</account>
</user>
</provider>
這我的XSLT,但不會讓我有:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:text>User;Account;Service;Group;Role</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="service">
<xsl:for-each select=".">
<xsl:value-of select="name"/>
<xsl:text>;</xsl:text>
</xsl:for-each>
<xsl:apply-templates select="role"/>
<xsl:apply-templates select="group"/>
</xsl:template>
<xsl:template match="group">
<xsl:for-each select=".">
<xsl:value-of select="name"/>
<xsl:text>;</xsl:text>
</xsl:for-each>
<xsl:apply-templates select="role"/>
</xsl:template>
<xsl:template match="role">
<xsl:for-each select=".">
<xsl:value-of select="name"/>
<xsl:text>;</xsl:text>
</xsl:for-each>
</xsl:template>
在輸入XML中總會只有一個用戶嗎? –