[英]merge two xml using groovy script or xslt
我有兩個 xml,需要使用 groovy 進行 xslt 映射合並。
XML-1 的結構:
<EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId>77</userId> <ABC1>xyz1</ABC1> </EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId>78</userId> <ABC1>xyz1</ABC1> </EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId>79</userId> <ABC1>xyz1</ABC1> </EmployeeTime> </EmployeeTime>
XML-2 的結構 -
<n0:ZHTR_LEAVE_SAL_ADVANCEResponse xmlns:n0="urn:sap-com:document:sap:rfc:functions"> <E_LEAVEDATA> <item> <PERNR>00000077</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </item> <item> <PERNR>00000078</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </item> <item> <PERNR>00000078</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </item> </E_LEAVEDATA> </n0:ZHTR_LEAVE_SAL_ADVANCEResponse>
我需要合並它並得到如下響應 -
<EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId> <PERNR>77</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </userId> <ABC1>xyz1</ABC1> </EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId> <PERNR>78</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </userId> <ABC1>xyz1</ABC1> </EmployeeTime> <EmployeeTime> <ABC>xyz</ABC> <userId> <PERNR>79</PERNR> <AMOUNT>0.0</AMOUNT> <DAYS/> <DATE>2020-02-29</DATE> </userId> <ABC1>xyz1</ABC1> </EmployeeTime> </EmployeeTime>
合並的響應應該豐富 XML-1 中的 userId 標記
請注意,可以重復 n 次,同樣適用於
有人可以幫我處理代碼 XSLT 或 groovy 嗎?
問候, 阿卡什
在這里,我假設 XML1 是 ECRESPONSE 而 XML-2 是 S4RESPONSE -
def Message processData(Message message) {
def properties = message.getProperties();
def ecmessage = properties.get("ECRESPONSE");
def s4message = properties.get("S4RESPONSE");
String combinemessage = ecmessage+"<S4Response>"+s4message+"</S4Response>";
def messageLog = messageLogFactory.getMessageLog(message);
messageLog.addAttachmentAsString("ResponsePayloadCombine:", "--"+combinemessage+"--", "text/plain");
return message;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.