我是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>");
但是它不起作用,我找不到解决方案。
答案 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 + "]");