【发布时间】:2016-03-29 11:53:54
【问题描述】:
我想使用 XSLT 进行一次转换。根据下面的示例,有多个 EmpRecord 可用,每个 EmpRecord 包含 EmpDept 和该部门下可用员工的 Profile。
XML:
<Employee>
<EmpRecord>
<EmpDept>Accounting</EmpDept>
<EmpData>
<Name>Joy</Name>
<Age>32</Age>
</EmpData>
</EmpRecord>
<EmpRecord>
<EmpDept>Finance</EmpDept>
</EmpRecord>
<EmpRecord>
<EmpDept>IT</EmpDept>
<EmpData>
<Name>Sam</Name>
<Age>27</Age>
</EmpData>
<EmpData>
<Name>John</Name>
<Age>25</Age>
</EmpData>
<EmpData>
<Name>Ricky</Name>
<Age>31</Age>
</EmpData>
</EmpRecord>
</Employee>
预期输出:
<Employee>
<EmpRecord>
<Department>Accounting</Department>
<EmpData>
<EmpName>Joy</EmpName>
<Age>32</Age>
</EmpData>
</EmpRecord>
<EmpRecord>
<Department>IT</Department>
<EmpData>
<EmpName>Sam</EmpName>
<Age>27</Age>
</EmpData>
<EmpData>
<EmpName>John</EmpName>
<Age>25</Age>
</EmpData>
<EmpData>
<EmpName>Ricky</EmpName>
<Age>31</Age>
</EmpData>
</EmpRecord>
</Employee>
我能够获取所有可用的 EmpData,但无法获取 EmpDept。
使用的 XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Employee>
<xsl:for-each select="/Employee/EmpRecord/EmpData">
<Department><xsl:value-of select="./EmpDept"/></Department>
<EmpData>
<EmpName><xsl:value-of select="./Name"/></EmpName>
<Age><xsl:value-of select="./Age"/></Age>
</EmpData>
</xsl:for-each>
</Employee>
</xsl:template>
</xsl:stylesheet>
所以我只想要那些至少有一名员工可用的 EmpDept。
【问题讨论】: