如何替换 BizTalk 消息中的 < 和 >?

How to replace &lt; and &gt; in BizTalk message?

我是 BizTalk 的新手,我需要从 SQL 服务器 table 读取一些值。我得到的结果集示例如下:

<SelectResponse 
xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/tableName">
    <SelectResult>
        <tableName xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
            <Message> &lt;item_1&gt; item_1Value &lt;/item_1&gt;
                      &lt;item_2&gt; item_2Value &lt;/item_2&gt;
                      &lt;item_3&gt; item_3Value &lt;/item_3&gt;
                      &lt;item_n&gt; item_3Value &lt;/item_n&gt; </Message>
         </tableName>
   </SelectResult>
</SelectResponse>

所以我在 BizTalk 中收到消息(架构是从 SQL 适配器自动生成的)。我想要的是:

<SelectResponse 
xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/tableName">
    <SelectResult>
        <tableName xmlns="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
            <Message> 
                <item_1> item_1Value </item_1>
                <item_2> item_2Value </item_2>
                <item_3> item_3Value </item_3>
                <item_n> item_3Value </item_n> 
             </Message>
         </tableName>
   </SelectResult>
</SelectResponse>

我有新架构(item_1、item_2、...)。考虑到 <Message> 可以在 BizTalk 消息中多次出现,获得我需要的内容的更简单方法是什么?我该怎么做?谢谢

您看到此消息的最可能原因是项目 Xml 内容存储在另一个 Xml 结构中,消息。存储在 Xml 中的 Xml 被转义,所以这不是实际问题,这是预期的行为。

您有多种选择,包括:

  1. 使用存储过程加载和处理项目 Xml 作为 Xml 而不是结果中的字符串
  2. 在 Orchestration 中,提取项目 Xml,重新格式化以包含根元素并基于该元素创建新消息。

问题是这些数据是如何存储的,而不是 SQL Server 如何返回它或 BizTalk 如何呈现它。