在SAP CPI中使用Xpath轴来过滤XML

2020-08-16 03:43发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的社区,

我在CPI流程中有如下所示的XML结构化消息,并且想要删除除第一个B3节点(及其子节点)以外的所有消息。 我怎样才能最好地做到这一点? 我在CPI中尝试了"过滤器",但没有成功,因为CPI不允许" ancestor-or-self :: div"语法访问父级。 " ::"为名称空间保留(错误:名称空间映射中未定义名称空间前缀祖先或自我)。 有什么办法可以逃脱这些特殊字符? 还是有更好的方法来实现所需的输出?

所需的输出:

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的社区,

我在CPI流程中有如下所示的XML结构化消息,并且想要删除除第一个B3节点(及其子节点)以外的所有消息。 我怎样才能最好地做到这一点? 我在CPI中尝试了"过滤器",但没有成功,因为CPI不允许" ancestor-or-self :: div"语法访问父级。 " ::"为名称空间保留(错误:名称空间映射中未定义名称空间前缀祖先或自我)。 有什么办法可以逃脱这些特殊字符? 还是有更好的方法来实现所需的输出?

所需的输出:

付费偷看设置
发送
5条回答
南山jay
1楼 · 2020-08-16 04:37.采纳回答

Hello Kevin,

您将无法使用单个内容过滤器来实现此目的,您需要多播消息以使2个分支分别过滤B1节点和另一个B2,最后加入并聚集以得到 所需的输出。您可以在XSLT下面使用它来输出。

输入数据:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

XSLT代码:

 
 
 
 
 
 
 

您还可以通过 Morten Wittrock 推荐博客,他很好地解释了相同的概念。

< p> https://blogs.sap。 com/2020/02/26/thinking-in-xslt-filtering-xml-elements/

问候,

Sriprasad Shivaram Bhat

路亽曱_Ryan
2楼-- · 2020-08-16 04:26

嗨,Sirprasad

如果我没记错的话,您的模板会删除所有 B3元素。 目标是删除除第一个以外的所有内容,因此我认为您的模板应该是:

  

Morten

Climb_Ma
3楼-- · 2020-08-16 04:46

嗨凯文,

如果您使用XSLT并仅选择第一个B3记录会有所帮助

/A/B3 [1]

-Yatan

宇峰Kouji
4楼-- · 2020-08-16 04:32

没问题:)您很好地应用了该过滤器模式!

问候,

Morten

奄奄一息的小鱼
5楼-- · 2020-08-16 04:40

感谢 Morten Wittrock 的更正:)。不幸的是,我忽略了问题,并发布了XSLT,该XSLT删除了所有出现的 B3。将答案更新为现在正确的答案

致谢

Sriprasad Shivaram Bhat

一周热门 更多>