【发布时间】:2018-12-20 03:34:58
【问题描述】:
我有一个输入 xml,使用下面的 XSL 转换我可以将 deptId 作为子元素添加到“员工”元素,但我想将它作为子元素添加到每个“员工”元素。我是新人到 XSLT 我尝试了以下转换,但没有得到所需的输出
输入 XML:
<?xml version="1.0" encoding="UTF-8"?>
<rootnode>
<companyName>ABC</companyName>
<deptId>12</deptId>
<employee>
<name>n1</name>
<empid>e1</empid>
</employee>
<employee>
<name>n2</name>
<empid>e2</empid>
</employee>
<employee>
<name>n3</name>
<empid>e3</empid>
</employee>
</rootnode>
XSL 转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/rootnode">
<xsl:copy>
<xsl:copy-of select="companyName"/>
<xsl:copy-of select="deptId"/>
<employees>
<xsl:copy-of select="employee"/>
<xsl:copy-of select="deptId"/>
</employees>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
输出xml:
<?xml version="1.0" encoding="UTF-8"?>
<rootnode>
<companyName>ABC</companyName>
<deptId>D1</deptId>
<employees>
<employee>
<name>n1</name>
<empid>e1</empid>
</employee>
<employee>
<name>n2</name>
<empid>e2</empid>
</employee>
<employee>
<name>n3</name>
<empid>e3</empid>
</employee>
<deptId>D1</deptId>
</employees>
</rootnode>
所需输出:
<?xml version="1.0" encoding="UTF-8"?>
<rootnode>
<companyName>ABC</companyName>
<deptId>12</deptId>
<employees>
<employee>
<name>n1</name>
<empid>e1</empid>
<deptId>12</deptId>
</employee>
<employee>
<name>n2</name>
<empid>e2</empid>
<deptId>12</deptId>
</employee>
<employee>
<name>n3</name>
<empid>e3</empid>
<deptId>12</deptId>
</employee>
</employees>
</rootnode>
我希望将 deptId 复制到 'employees' 元素下的所有 'employee' 元素中,有人可以帮我解决这个问题。
【问题讨论】:
-
整个文档中是否总是只有一个
deptId? -
是只有一个deptId