在BizTalk中以表达式形状串联在LoadXml()中

时间:2019-01-31 10:47:48

标签: xml concatenation biztalk biztalk-2013 c#-1.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;

正在返回此错误:

  

运算符'+'不能应用于类型'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>");

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

2 个答案:

答案 0 :(得分:1)

我找到了问题。我只是忘记在xpath查询中连接counterString。

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

答案 1 :(得分:0)

您必须连接字符串counterString。

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