我有一个 XML,它具有应评估以创建节点的各种条件。我研究了多个站点,我的代码似乎是正确的,但它始终默认为“否则”节点。注意:我无法控制正在提交的 XML,并且我必须根据每个测试的 XML 中仅发送一个值来构建 XSLT。但根据事件名称,需要引用不同的人。我认为这是我最初的 When 语句,因为它似乎从未通过该条件。也许语法是错误的?任何指导将不胜感激。
<Event>
<xsl:for-each select="hr:UserArea/hr:Id">
<xsl:if test="@idOwner = 'Onboarding_Event' and hr:IdValue !=''">
<Name><xsl:value-of select="hr:IdValue"/></Name>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="hr:UserArea/hr:Id">
<xsl:choose>
<xsl:when test="hr:Onboarding_Event = 'US Onboarding'">
<xsl:if test="@idOwner = 'Managers_Email_ID' and hr:IdValue !=''">
<Person>
<Name>Manager</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'Onboarding_Co' and hr:IdValue !=''">
<Person>
<Name>Onboarding Coordinator</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'HR_Rep_email_ID' and hr:IdValue !=''">
<Person>
<Name>HR Representative</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
</xsl:when>
<xsl:when test="hr:UserArea/hr:Onboarding_Event and hr:IdValue ='CES Onboarding'">
<xsl:if test="@idOwner = 'Managers_Email_ID' and hr:IdValue !=''">
<Person>
<Name>CES Manager</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'Onboarding_Co' and hr:IdValue !=''">
<Person>
<Name>CES Onboarding Coordinator</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'HR_Rep_email_ID' and hr:IdValue !=''">
<Person>
<Name>CES HR Representative</Name>
<Value><xsl:value-of select="hr:IdValue"/></Value>
</Person>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="@idOwner = 'Managers_Email_ID' and hr:IdValue !=''">
<Person>
<Name>EMEA Manager</Name>
<Value>Test</Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'Onboarding_Co' and hr:IdValue !=''">
<Person>
<Name>EMEA Onboarding Coordinator</Name>
<Value>Test</Value>
</Person>
</xsl:if>
<xsl:if test="@idOwner = 'HR_Rep_email_ID' and hr:IdValue !=''">
<Person>
<Name>EMEA HR Representative</Name>
<Value>Test</Value>
</Person>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</Event>
这是一个示例 XML
<Candidate>
<UserArea>
<Id idOwner="Manager">
<IdValue>CES Manager</IdValue>
</Id>
<Id idOwner="Managers_Email_ID">
<IdValue>CES manager Email</IdValue>
</Id>
<Id idOwner="HR_Representative">
<IdValue>CES HR Rep</IdValue>
</Id>
<Id idOwner="Onboarding_Co">
<IdValue>CES Coordinator</IdValue>
</Id>
<Id idOwner="Onboarding_Event">
<IdValue>CES Onboarding</IdValue>
</Id>
<Id idOwner="HR_Rep_email_ID">
<IdValue>CES HR REP email address</IdValue>
</Id>
</UserArea>
</Candidate>