问题描述
我正尝试过滤出团队规模不大于4的记录。
XML输入是
<EmpJob>
<EmpJob>
<emplStatus>4530</emplStatus>
<userNav>
<User>
<firstName>User</firstName>
<lastName>One</lastName>
<hireDate>2015-05-01T00:00:00.000</hireDate>
<gender>M</gender>
<teamMembeRSSize>9</teamMembeRSSize>
<totalTeamSize>27</totalTeamSize>
</User>
</userNav>
<businessUnit>CORP</businessUnit>
<jobTitle>Global IT Manager</jobTitle>
<jobCode>IT1IT02</jobCode>
<employmentNav>
<EmpEmployment>
<userNav>
<User>
<teamMembeRSSize>9</teamMembeRSSize>
<totalTeamSize>27</totalTeamSize>
<email>hris@user.com</email>
</User>
</userNav>
<startDate>2015-05-01T00:00:00.000</startDate>
</EmpEmployment>
</employmentNav>
<managerId>101112</managerId>
<userId>200254</userId>
<eventReason>DATAMIG</eventReason>
<regularTempNav>
<PicklistOption>
<externalCode>R</externalCode>
<localeLabel>Regular</localeLabel>
</PicklistOption>
</regularTempNav>
<positionEntryDate>2019-04-19T00:00:00.000</positionEntryDate>
<positionNav>
<Position>
<externalName_defaultValue>Gl IT Service Delivery Mgr</externalName_defaultValue>
</Position>
</positionNav>
<eventReasonNav/>
<company>C001</company>
<location>bedROGENBOS</location>
<position>POS2000143</position>
<department>IT</department>
<event>983</event>
<companyNav>
<FOCompany>
<countryNav>
<Territory>
<territoryName>Belgium</territoryName>
</Territory>
</countryNav>
</FOCompany>
</companyNav>
</EmpJob>
<EmpJob>
<emplStatus>4530</emplStatus>
<userNav>
<User>
<firstName>User</firstName>
<lastName>Two</lastName>
<hireDate>2016-09-13T00:00:00.000</hireDate>
<gender>M</gender>
<teamMembeRSSize>1</teamMembeRSSize>
<totalTeamSize>1</totalTeamSize>
</User>
</userNav>
<businessUnit>CORP</businessUnit>
<jobTitle>Sourcing Manager</jobTitle>
<jobCode>PR4SM01</jobCode>
<employmentNav>
<EmpEmployment>
<userNav>
<User>
<teamMembeRSSize>1</teamMembeRSSize>
<totalTeamSize>1</totalTeamSize>
<email>hris@user.com</email>
</User>
</userNav>
<startDate>2016-09-13T00:00:00.000</startDate>
</EmpEmployment>
</employmentNav>
<managerId>105389</managerId>
<userId>202347</userId>
<eventReason>DATAMIG</eventReason>
<regularTempNav>
<PicklistOption>
<externalCode>R</externalCode>
<localeLabel>Regular</localeLabel>
</PicklistOption>
</regularTempNav>
<positionEntryDate>2019-04-19T00:00:00.000</positionEntryDate>
<positionNav>
<Position>
<externalName_defaultValue>Procurement Mgr AO</externalName_defaultValue>
</Position>
</positionNav>
<eventReasonNav/>
<company>C622</company>
<location>AUBOTANY</location>
<position>POS2000577</position>
<department>PROCUREMENT</department>
<event>983</event>
<companyNav>
<FOCompany>
<countryNav>
<Territory>
<territoryName>Australia</territoryName>
</Territory>
</countryNav>
</FOCompany>
</companyNav>
</EmpJob>
</EmpJob>
正在使用的样式表是
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="EmpJob/EmpJob/userNav/User[(teamMembeRSSize/text()=('3','2','1','0'))]"/>
</xsl:stylesheet>
结果是某些字段(例如名字,姓氏,团队成员大小)为空,但记录仍保留。输出XML是
<?xml version="1.0" encoding="UTF-8"?>
<EmpJob>
<EmpJob>
<emplStatus>4530</emplStatus>
<userNav>
<User>
<firstName>User</firstName>
<lastName>One</lastName>
<hireDate>2015-05-01T00:00:00.000</hireDate>
<gender>M</gender>
<teamMembeRSSize>9</teamMembeRSSize>
<totalTeamSize>27</totalTeamSize>
</User>
</userNav>
<businessUnit>CORP</businessUnit>
<jobTitle>Global IT Manager</jobTitle>
<jobCode>IT1IT02</jobCode>
<employmentNav>
<EmpEmployment>
<userNav>
<User>
<teamMembeRSSize>9</teamMembeRSSize>
<totalTeamSize>27</totalTeamSize>
<email>hris@user.com</email>
</User>
</userNav>
<startDate>2015-05-01T00:00:00.000</startDate>
</EmpEmployment>
</employmentNav>
<managerId>101112</managerId>
<userId>200254</userId>
<eventReason>DATAMIG</eventReason>
<regularTempNav>
<PicklistOption>
<externalCode>R</externalCode>
<localeLabel>Regular</localeLabel>
</PicklistOption>
</regularTempNav>
<positionEntryDate>2019-04-19T00:00:00.000</positionEntryDate>
<positionNav>
<Position>
<externalName_defaultValue>Delivery Mgr</externalName_defaultValue>
</Position>
</positionNav>
<eventReasonNav/>
<company>C001</company>
<location>bedROGENBOS</location>
<position>POS2000143</position>
<department>IT</department>
<event>983</event>
<companyNav>
<FOCompany>
<countryNav>
<Territory>
<territoryName>Belgium</territoryName>
</Territory>
</countryNav>
</FOCompany>
</companyNav>
</EmpJob>
<EmpJob>
<emplStatus>4530</emplStatus>
<userNav/>
<businessUnit>CORP</businessUnit>
<jobTitle>Sourcing Manager</jobTitle>
<jobCode>PR4SM01</jobCode>
<employmentNav>
<EmpEmployment>
<userNav>
<User>
<teamMembeRSSize>1</teamMembeRSSize>
<totalTeamSize>1</totalTeamSize>
<email>hris@user.com</email>
</User>
</userNav>
<startDate>2016-09-13T00:00:00.000</startDate>
</EmpEmployment>
</employmentNav>
<managerId>105389</managerId>
<userId>202347</userId>
<eventReason>DATAMIG</eventReason>
<regularTempNav>
<PicklistOption>
<externalCode>R</externalCode>
<localeLabel>Regular</localeLabel>
</PicklistOption>
</regularTempNav>
<positionEntryDate>2019-04-19T00:00:00.000</positionEntryDate>
<positionNav>
<Position>
<externalName_defaultValue>Procurement Mgr AO</externalName_defaultValue>
</Position>
</positionNav>
<eventReasonNav/>
<company>C622</company>
<location>AUBOTANY</location>
<position>POS2000577</position>
<department>PROCUREMENT</department>
<event>983</event>
<companyNav>
<FOCompany>
<countryNav>
<Territory>
<territoryName>Australia</territoryName>
</Territory>
</countryNav>
</FOCompany>
</companyNav>
</EmpJob>
</EmpJob>
输出中应该只有第一位员工。关于如何从输出中删除整个记录的任何建议。
谢谢 杰里米
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)