<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
<multimap:Message1>
<n0:ZHTR_LEAVE_SAL_ADVANCEResponse xmlns:n0="urn:sap-com:document:sap:rfc:functions" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<E_LEAVEDATA>
<item>
<PERNR>100087</PERNR>
<AMOUNT>0.0</AMOUNT>
<DAYS/>
<DATE>0000-00-00</DATE>
<NOFDAYS>0</NOFDAYS>
<HOLIDAYS/>
</item>
<item>
<PERNR>100103</PERNR>
<AMOUNT>0.0</AMOUNT>
<DAYS/>
<DATE>0000-00-00</DATE>
<NOFDAYS>0</NOFDAYS>
<HOLIDAYS/>
</item>
<item>
<PERNR>100104</PERNR>
<AMOUNT>0.0</AMOUNT>
<DAYS/>
<DATE>0000-00-00</DATE>
<NOFDAYS>0</NOFDAYS>
<HOLIDAYS/>
</item>
<item>
<PERNR>100120</PERNR>
<AMOUNT>0.0</AMOUNT>
<DAYS/>
<DATE>0000-00-00</DATE>
<NOFDAYS>0</NOFDAYS>
<HOLIDAYS/>
</item>
</E_LEAVEDATA>
</n0:ZHTR_LEAVE_SAL_ADVANCEResponse>
</multimap:Message1>
<multimap:Message2>
<EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<lastModifiedDateTime>2020-04-27T05:34:15.000</lastModifiedDateTime>
<externalCode>6e986c5615e3461eacaa13ab4a621e6d</externalCode>
<cust_SickLeaveReason/>
<deductionQuantity>1</deductionQuantity>
<endDate>2020-04-27T00:00:00.000</endDate>
<timeTypeNav>
<TimeType>
<country>SGP</country>
<externalCode>2020</externalCode>
<externalName_defaultValue>Marriage Leaves for Tradings</externalName_defaultValue>
</TimeType>
</timeTypeNav>
<displayQuantity>1</displayQuantity>
<lastModifiedBy>SemantiB</lastModifiedBy>
<quantityInDays>1</quantityInDays>
<createdDateTime>2020-04-27T05:33:17.000</createdDateTime>
<timeType>2020</timeType>
<workflowRequestId/>
<userId>100087</userId>
<createdBy>SemantiB</createdBy>
<startDate>2020-04-27T00:00:00.000</startDate>
<originalQuantityInDays>1</originalQuantityInDays>
</EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<lastModifiedDateTime>2020-05-09T09:06:16.000</lastModifiedDateTime>
<externalCode>4749af0fb5d04a8f91d42d86a842cc48</externalCode>
<cust_SickLeaveReason/>
<deductionQuantity>105</deductionQuantity>
<endDate>2020-12-02T00:00:00.000</endDate>
<timeTypeNav>
<TimeType>
<country>SGP</country>
<externalCode>2002</externalCode>
<externalName_defaultValue>Maternity Leave continuous</externalName_defaultValue>
</TimeType>
</timeTypeNav>
<displayQuantity>105</displayQuantity>
<lastModifiedBy>SemantiB</lastModifiedBy>
<quantityInDays>75</quantityInDays>
<createdDateTime>2020-05-08T10:12:26.000</createdDateTime>
<timeType>2002</timeType>
<workflowRequestId/>
<userId>100103</userId>
<createdBy>SemantiB</createdBy>
<startDate>2020-08-20T00:00:00.000</startDate>
<originalQuantityInDays>75</originalQuantityInDays>
</EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<lastModifiedDateTime>2020-05-12T04:22:36.000</lastModifiedDateTime>
<externalCode>b7457bf1049846d390843e51286d01d1</externalCode>
<cust_SickLeaveReason/>
<deductionQuantity>40</deductionQuantity>
<endDate>2020-10-06T00:00:00.000</endDate>
<timeTypeNav>
<TimeType>
<country>SGP</country>
<externalCode>2003</externalCode>
<externalName_defaultValue>Maternity Leave non-continuous</externalName_defaultValue>
</TimeType>
</timeTypeNav>
<displayQuantity>40</displayQuantity>
<lastModifiedBy>SemantiB</lastModifiedBy>
<quantityInDays>40</quantityInDays>
<createdDateTime>2020-05-09T12:27:36.000</createdDateTime>
<timeType>2003</timeType>
<workflowRequestId/>
<userId>100104</userId>
<createdBy>SemantiB</createdBy>
<startDate>2020-08-12T00:00:00.000</startDate>
<originalQuantityInDays>40</originalQuantityInDays>
</EmployeeTime>
<EmployeeTime>
<approvalStatus>APPROVED</approvalStatus>
<lastModifiedDateTime>2020-05-12T05:14:03.000</lastModifiedDateTime>
<externalCode>06e20a72d55b4da191e3b96438229f12</externalCode>
<cust_SickLeaveReason>8</cust_SickLeaveReason>
<deductionQuantity>28</deductionQuantity>
<endDate>2020-06-18T00:00:00.000</endDate>
<timeTypeNav>
<TimeType>
<country>SGP</country>
<externalCode>2007</externalCode>
<externalName_defaultValue>Sick Leave</externalName_defaultValue>
</TimeType>
</timeTypeNav>
<displayQuantity>28</displayQuantity>
<lastModifiedBy>SemantiB</lastModifiedBy>
<quantityInDays>28</quantityInDays>
<createdDateTime>2020-05-12T05:14:03.000</createdDateTime>
<timeType>2007</timeType>
<workflowRequestId/>
<userId>100120</userId>
<createdBy>SemantiB</createdBy>
<startDate>2020-05-12T00:00:00.000</startDate>
<originalQuantityInDays>28</originalQuantityInDays>
</EmployeeTime>
</EmployeeTime>
</multimap:Message2>
</multimap:Messages>
<EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<userId>100087</userId>
<PERNR>100087</PERNR>
<AMOUNT>0.0</AMOUNT>
</EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<userId>100103</userId>
<PERNR>100103</PERNR>
<AMOUNT>0.0</AMOUNT>
</EmployeeTime>
<EmployeeTime>
<approvalStatus>CANCELLED</approvalStatus>
<userId>100104</userId>
<PERNR>100104</PERNR>
<AMOUNT>0.0</AMOUNT>
</EmployeeTime>
</EmployeeTime>
我正在使用下面的XSLT-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="/">
<EmployeeTime>
<xsl:for-each select="Messages/Message2">
<EmployeeTime>
<approvalStatus>
<xsl:value-of select="EmployeeTime/EmployeeTime/approvalStatus"/>
</approvalStatus>
<userId>
<xsl:value-of select="EmployeeTime/EmployeeTime/userId"/>
</userId>
<xsl:if test="userId=Messages/Messages1/ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/PERNR">
<PERNR>
<xsl:value-of select="Messages/Messages1/ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/PERNR"/>
</PERNR>
<AMOUNT>
<xsl:value-of select="Messages/Messages1/ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/AMOUNT"/>
</AMOUNT>
</EmployeeTime>
</xsl:for-each>
</EmployeeTime>
</xsl:template>
</xsl:stylesheet>
可以有人请检查XSLT代码,帮助我得到想要的结果。当前,我得到以下错误数组([type]=>2[message]=>XSLTProcessor::TransformToxML():没有与此对象关联的样式表[file]=>/var/www/html/online-toolz.com/functions/xslt.php[line]=>26)错误:XSLTProcessor::TransformToxML():没有与此对象关联的样式表
您的xsl:if没有关闭。您还需要理清如何处理名称空间。
这应该让你开始:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="/">
<xsl:variable name="messages1"><xsl:copy-of select="multimap:Messages/multimap:Messages1" /></xsl:variable>
<EmployeeTime>
<xsl:for-each select="multimap:Messages/multimap:Message2">
<EmployeeTime>
<approvalStatus>
<xsl:value-of select="EmployeeTime/EmployeeTime/approvalStatus"/>
</approvalStatus>
<userId>
<xsl:value-of select="EmployeeTime/EmployeeTime/userId"/>-
<xsl:value-of select="count(msxsl:node-set($messages1)//*)"/>]
</userId>
<xsl:if test="userId=msxsl:node-set($messages1)/n0:ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/PERNR">
<PERNR>
<xsl:value-of select="msxsl:node-set($messages1)/n0:ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/PERNR"/>
</PERNR>
<AMOUNT>
<xsl:value-of select="msxsl:node-set($messages1)/n0:ZHTR_LEAVE_SAL_ADVANCEResponse/E_LEAVEDATA/item/AMOUNT"/>
</AMOUNT>
</xsl:if>
</EmployeeTime>
</xsl:for-each>
</EmployeeTime>
</xsl:template>
</xsl:stylesheet>
如果要引用for-each中的节点,也就是在select上下文之外的节点,则需要在for-each之外定义一个变量,然后在内部引用它。上面已经被编辑以显示这一点,但没有测试。如何使用节点集取决于使用的转换器。我已经为MSXML指定了as。
<xsl:for-each select="multimap:Messages/multimap:Message2/EmployeeTime">
我试图通过选择符合以下条件的歌曲节点来转换上述XML: 状态='已发布' 如果匹配Data/Record/@Id的 /AUTH/AUTHOR_ID的AUTH/HIDE值为true,则不显示ART/TYPE(在这种情况下,Id=1826155) 所需的XML输出应包括Type、所有作者和标题。第二个歌曲类型在此示例中隐藏(因为HIDE=true对于主要作者): 我开始尝试每种方法,但发现我无法显示与
我有两个xml文件,需要使用XSLT将它们合并为一个。 第一个XML是(原始的): 第二个XML(更新数据)如下所示: 所需的合并结果-使用第二个XML更新第一个: 我已经搜索了stackoverflow,但仍然找不到答案。谢谢你的帮助。
我有一个xslt文档。我想在这个文档中使用if语句。我的代码是: 如果返回的值是code1然后写A,如果返回的值是code2然后写B。 我该怎么做?
我有一个excel,其中第1行中有从第1列到第15列的值。最后的每个单元格值都有一个数字。 我想创建另一行,该行根据结束编号合并单元格,并将相应的文本放入合并的单元格中。但是行值仍然需要保持顺序。 例如,,4等等。现在我想在第2行中为ABC3创建前3个单元格的合并,并放置。我需要在同一行2中创建5个合并的单元格来放置。之后,将4个单元格合并到同一行并放置等等。有什么想法如何实现这一点?
我有一个有许多记录的表。它有以下结构: 表(col1、col2、col3、col4、col5、col6): 还有很多很多其他的行。 因此,我想要一张桌子: 表(col1,col2,col3,col4_1,col4_2,col4_3,col5_1,col5_2,col5_3,col6_1,col6_2,col6_3): 换句话说:表中的某些部分具有相同的,但不同的。每个相同的行数在1-3之间变化(事
我想合并基于多个条件的2个数据帧。 DF1是主表,DF2被视为查找表 如果DF1的col1和col2与DF2的col1和col2匹配,且DF1的“值”介于DF2的最小值和最大值之间,则DF2的“数据”列将添加到DF1中。如果不满足条件,DF1的“数据”值为NA。 预期输出(前6行): 我尝试使用合并(匹配col1和col2)和子集(只过滤值介于最小和最大之间的行),但我的目标是维护DF1的所有行。