循环消息的元素并包括根节点
Looping around elements of a message and include root node
本文中的第一个建议 - http://blog.eliasen.dk/2006/11/05/LoopingAroundElementsOfAMessage.aspx 展示了如何遍历 XML 并将 XML 拆分为编排中的各个元素。
如果我想在所有后续个体xml中包含原始xml的根节点怎么办?例如,这是 xml 他们有:
<Employees>
<Employee title="mgr">
</Employee>
<Employee title="vp">
</Employee>
<Employee title="ceo">
</Employee>
</Employees>
如果我希望每个元素输出包含在 <Employees>
元素中,表达式会是什么样子:
<Employees>
<Employee title="mgr">
</Employee>
</Employees>
<Employees>
<Employee title="vp">
</Employee>
</Employees>
<Employees>
<Employee title="ceo">
</Employee>
</Employees>
该示例中使用的表达式是这样的:
EmployeeMessage = xpath(InputMessage, "/*[local-name()='Employees' and namespace-uri()='']/*[local-name()='Employee' and namespace-uri()=''][" + counterStr + "]");
我正在将此 xml 发送到期望根节点是这样的消息队列系统。
请帮忙。谢谢你。
更新:
我发现根节点需要包含名称空间定义才能正常工作。像这样:
<Employees xmlns="http://mycompany.com/hr.xsd">
<Employee title="mgr">
</Employee>
</Employees>
我们如何在输出中包含根节点的命名空间定义?
这应该有效:
varXmlDoc.LoadXml("<Employees xmlns='http://mycompany.com/hr.xsd'/>");
EmployeeMessage = varXmlDoc;
xpath(EmployeeMessage, "/Employees") = xpath(InputMessage, "/*[local-name()='Employees' and namespace-uri()='']/*[local-name()='Employee' and namespace-uri()=''][" + counterStr + "]");
其中 'varXmlDoc' 是类型 System.Xml.XmlDocument
本文中的第一个建议 - http://blog.eliasen.dk/2006/11/05/LoopingAroundElementsOfAMessage.aspx 展示了如何遍历 XML 并将 XML 拆分为编排中的各个元素。
如果我想在所有后续个体xml中包含原始xml的根节点怎么办?例如,这是 xml 他们有:
<Employees>
<Employee title="mgr">
</Employee>
<Employee title="vp">
</Employee>
<Employee title="ceo">
</Employee>
</Employees>
如果我希望每个元素输出包含在 <Employees>
元素中,表达式会是什么样子:
<Employees>
<Employee title="mgr">
</Employee>
</Employees>
<Employees>
<Employee title="vp">
</Employee>
</Employees>
<Employees>
<Employee title="ceo">
</Employee>
</Employees>
该示例中使用的表达式是这样的:
EmployeeMessage = xpath(InputMessage, "/*[local-name()='Employees' and namespace-uri()='']/*[local-name()='Employee' and namespace-uri()=''][" + counterStr + "]");
我正在将此 xml 发送到期望根节点是这样的消息队列系统。
请帮忙。谢谢你。
更新:
我发现根节点需要包含名称空间定义才能正常工作。像这样:
<Employees xmlns="http://mycompany.com/hr.xsd">
<Employee title="mgr">
</Employee>
</Employees>
我们如何在输出中包含根节点的命名空间定义?
这应该有效:
varXmlDoc.LoadXml("<Employees xmlns='http://mycompany.com/hr.xsd'/>");
EmployeeMessage = varXmlDoc;
xpath(EmployeeMessage, "/Employees") = xpath(InputMessage, "/*[local-name()='Employees' and namespace-uri()='']/*[local-name()='Employee' and namespace-uri()=''][" + counterStr + "]");
其中 'varXmlDoc' 是类型 System.Xml.XmlDocument