使用BizTalk在表达式形状中连接LoadXml()

问题描述 投票:0回答:2

我是BizTalk的新手,我在BizTalk的Expression形状中连接有问题。

在这个表达式形状我有这个代码:

xmlBody = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners']/*[local-name()='Owner'][counterString]");
xmlTemp.LoadXml("<ns0:CatManager xmlns:ns0=\"http://Manager.CatManager\">" + xmlBody + "</ns0:CatManager>");
msgOUT = xmlTemp;

这是返回此错误:

operator'+'不能应用于'System.String'和'System.Xml.XmlDocument'类型的操作数

所以我试试这个:

xmlTemp.LoadXml("<ns0:CatManager xmlns:ns0=\"http://Manager.CatManager\">" + xmlBody.ToString() + "</ns0:CatManager>");

或这个:

xmlTemp.LoadXml("<ns0:CatManager xmlns:ns0=\"http://Manager.CatManager\">" + xmlBody.OuterXml + "</ns0:CatManager>");

但它不起作用,我找不到解决方案。

xml concatenation biztalk biztalk-2013 c#-1.2
2个回答
1
投票

我发现了问题。我只是忘了在我的xpath查询中连接counterString。

xmlBody = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners']/*[local-name()='Owner'][" + counterString + "]");

0
投票

你必须连接字符串counterString。

xmlBody = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners']/*[local-name()='Owner'][" + counterString + "]");
© www.soinside.com 2019 - 2024. All rights reserved.