编排中的biztalk xpath查询

时间:2013-12-16 19:37:15

标签: xslt biztalk

我在编排中使用决定形状,我收到2 xml文件。    并且我使用xpatch过滤该文件,因为依赖第一个节点我必须在不同的地图中处理。我使用xpach语句来查找第一个节点是否等于特定值,如果是,它将处理,如果不是它将被发送到第二个映射。 我应该怎么做?我通常不会这样做,并试图找出我的陈述应该如何看待

  xpath(ACKSchema(name(/*))== CstmrPmtStsRpt; 
  1. 如何检查xml文件是否等于特定条件? 谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用xpath query功能探测消息中的值,或设置值。接收字符串值的语法是

variable = xpath(BiztalkMessage,"string(xpath-query)");

在消息中设置值

xpath(BiztalkMessage,"xpath-query") = value 

找到要使用的xpath的简单方法是在Visual Studio BizTalk项目中打开架构,然后选择将保存您的值的节点。然后查看属性窗口并使用“Instance Xpath”值(有关详细信息,请参阅this post

enter image description here

xpath查询可能有点冗长,根据您的情况,您可以缩短它(保真度很小)。如果要比较字符串值,则需要使用字符串函数;

xpath(msgTestMessage,"string(//MyNode)") == "TestValue"

如果没有xpath string function,您将收到等效的节点集,而不是值。

答案 1 :(得分:1)

如果两个xml文件具有不同的根节点,则可能根本不需要使用xpath并确定形状。

Using direct bound ports BizTalk可以自动将您的邮件路由到正确的“订阅者”。您将两个输入消息放入消息框数据库中。如果为每种消息类型创建一个订阅者,BizTalk会将消息发送给正确的订阅者。

BizTalk使用目标命名空间和根节点名称来决定哪个订阅者获取哪条消息。