You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XSLT规范化/转换员工技能XML数据?

XSLT员工技能XML数据转换方案

需求概述

  • 按员工ID升序排列技能,所有技能(最多20个)需关联对应员工ID
  • 若技能名称前20个字符相同,视为同一技能
  • 输出样式需匹配以下参考截图:
    输出样式参考

输入XML示例

<wd:Report_Data xmlns:wd="urn:com.workday.report/Worker_Skills_Data">
    <wd:Report_Entry>
        <wd:empid>100006949</wd:empid>
        <wd:name>Brooke</wd:name>
        <wd:status>Active</wd:status>
        <wd:skillscloud>
            <wd:skill>Assisting First Time Home Buyers</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Banking</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Credit</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Leadership</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Lending</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Loan Origination</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Mortgage Banking</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Mortgage Lending</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Negotiation</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Real Estate</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Real Estate Investments</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Refinancing</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Residential Homes</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Residential Mortgages</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Reverse Mortgages</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Sales</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Sales Management</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>VA Lending</wd:skill>
        </wd:skillscloud>
    </wd:Report_Entry>
    <wd:Report_Entry>
        <wd:empid>100002194</wd:empid>
        <wd:name>Troy</wd:name>
        <wd:status>Active</wd:status>
        <wd:skillscloud>
            <wd:skill>Banking</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Credit</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Credit Analysis</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Customer Service</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Finance</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Financial Analysis</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Leadership</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Lending</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Loan Servicing</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Mortgage Banking</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Mortgage Lending</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Mortgage Servicing</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>People Management</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Process Improvements</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Risk Management</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Software Documentation</wd:skill>
        </wd:skillscloud>
        <wd:skillscloud>
            <wd:skill>Underwriting</wd:skill>
        </wd:skillscloud>
    </wd:Report_Entry>
</wd:Report_Data>

XSLT转换代码

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wd="urn:com.workday.report/Worker_Skills_Data">
    <xsl:output method="html" indent="yes"/>
    
    <!-- 按员工ID升序排序员工并生成表格 -->
    <xsl:template match="/wd:Report_Data">
        <html>
            <body>
                <table border="1">
                    <tr>
                        <th>员工ID</th>
                        <th>员工姓名</th>
                        <th>技能</th>
                    </tr>
                    <!-- 按empid数值升序排列员工条目 -->
                    <xsl:for-each select="wd:Report_Entry">
                        <xsl:sort select="wd:empid" data-type="number" order="ascending"/>
                        <tr>
                            <td><xsl:value-of select="wd:empid"/></td>
                            <td><xsl:value-of select="wd:name"/></td>
                            <td>
                                <!-- 去重技能(前20字符相同视为同一技能),最多显示20个 -->
                                <xsl:for-each select="wd:skillscloud[not(substring(wd:skill,1,20) = preceding-sibling::wd:skillscloud/substring(wd:skill,1,20))]">
                                    <xsl:if test="position() &lt;= 20">
                                        <p><xsl:value-of select="wd:skill"/></p>
                                    </xsl:if>
                                </xsl:for-each>
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

关键逻辑说明

  1. 员工排序:通过<xsl:sort>按员工ID的数值类型升序排列所有员工条目
  2. 技能去重:截取技能名称前20字符,对比当前技能与前序技能的截取值,过滤重复技能
  3. 数量限制:使用position() <= 20确保每个员工最多展示20个技能
  4. 输出结构:生成HTML表格,匹配参考截图的列布局与展示形式

内容的提问来源于stack exchange,提问作者Buddi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 06:12:47