我是新來的XSLT,並試圖使用XSLT映射一個XML到另一個XML,這是我的第一個XMLXML到XML映射使用XSLT
<root>
<record>
<element name="LoginId">a</element>
<element name="name">Admin Manager</element>
<element name="password">12345</element>
<element name="Age">28</element>
<element name="Sex">M</element>
</record>
<record>
<element name="LoginId">b</element>
<element name="name">HR exec</element>
<element name="password">pass1</element>
<element name="Age">26</element>
<element name="Sex">F</element>
</record>
<record>
<element name="LoginId">c</element>
<element name="name">PR Manager</element>
<element name="password">pass2</element>
<element name="Age">27</element>
<element name="Sex">M</element>
</record>
</root>
我需要這個XML轉換爲以下
<?xml version="1.0" encoding="UTF-8"?>
<final>
<test>
<UID>a</UUID>
<Name>HR manager</Name>
<Groups>admingroup</Groups>
<Password>12345</Password>
</test>
<test>
<UID>b</UUID>
<Name>HR exec</Name>
<Groups>admingroup</Groups>
<Password>pass1</Password>
</test>
<test>
<UID>c</UUID>
<Name>PR manager</Name>
<Groups>admingroup</Groups>
<Password>pass2</Password>
</test>
</final>
我試圖下面的XSLT用於轉化
<?xml version="1.0" encoding="UTF-8" ?>
- <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
- <xsl:template match="/">
- <test>
- <xsl:for-each select="root/record">
<xsl:apply-templates select="element" />
</xsl:for-each>
</test>
</xsl:template>
- <xsl:template match="element">
- <test>
<Employee />
- <UID>
<xsl:value-of select="@LoginId" />
</UID>
- <xsl:choose>
- <xsl:when test="@name = ''">
- <Name>
<xsl:text>demo employee</xsl:text>
</Name>
</xsl:when>
- <xsl:otherwise>
- <Name>
<xsl:value-of select="@name" />
</Name>
</xsl:otherwise>
</xsl:choose>
- <Groups>
<xsl:text>admingroup</xsl:text>
</Groups>
- <Password>
<xsl:value-of select="@password" />
</Password>
</test>
</xsl:template>
</xsl:transform>
但這XSLT是產生下面的XML輸出
<?xml version="1.0" encoding="UTF-8"?>
<impex>
<final>
<Employee />
<UID />
<Name>LoginId</Name>
<Groups>admingroup</Groups>
<Password />
</final>
total 15 <final></final> with similar output
我可以很容易地做到這一點在Java中,但一些如何在XSLT和我面臨的唯一問題做的是<element>
標籤都有不同的屬性的重複值
在這方面的任何幫助將非常妄作
+1以及結構問題。 –