我是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>");
但它不起作用,我找不到解决方案。
我发现了问题。我只是忘了在我的xpath查询中连接counterString。
xmlBody = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners']/*[local-name()='Owner'][" + counterString + "]");
你必须连接字符串counterString。
xmlBody = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners']/*[local-name()='Owner'][" + counterString + "]");