2011-02-18 86 views
1

我想從使用functoids的輸入xml消息中獲取數據。但這似乎並不奏效。下面是我的XML片段BizTalk映射所需的幫助

<?xml version="1.0" ?> 
<ROOT> 
    <COMPANIES> 
     <COMPANY> 
      <NAME>FOO CORP</name> 
     </COMPANY> 
     <COMPANY> 
      <NAME>ACME CORP</name> 
     </COMPANY> 
    </COMPANIES> 
    <INFORMATIONS> 
     <INFORMATION> 
      <TESTING> 
       <TESTS> 
        <NAME>1221</NAME> 
        <TEST> 
         <TEXT>I AM SAM</TEXT> 
        </TEST> 
       </TESTS> 
       <TESTS> 
        <NAME>21</NAME> 
        <TEST> 
         <TEXT>FADFDF</TEXT> 
        </TEST> 
       </TESTS> 
       <TESTS> 
        <NAME>3001</NAME> 
        <TEST> 
         <TEXT>SGFGSDFG</TEXT> 
        </TEST> 
       </TESTS> 
       <TESTS> 
        <NAME>4569</NAME> 
        <TEST> 
         <TEXT>12312</TEXT> 
        </TEST> 
       </TESTS> 
      </TESTING> 
     <INFORMATION> 
    </INFORMATIONS> 
</ROOT> 
  1. 首先我通過一家試圖進行循環,並獲得NAME「的ACME公司」。但我使用的functoid(腳本,字符串提取等)我總是得到FOO CORP。我甚至嘗試了內聯XSLT,但這似乎也不起作用。任何想法如何獲得第二個公司名稱?

  2. 其次,我已將<TEXT>直接映射到目標架構中的<node>。我得到的只有<TEXT>的2個值。並非所有的<TEXT>都映射到我的<node>。輸出我得到是 我不明白的是

    I AM SAM FADFDF

我不明白

<node>SGFGSDFG</node> 
<node>12312</node> 

任何人知道如何我能得到的價值觀?

在此先感謝

歡呼聲,

KARTHIK

+0

請爲您的示例文檔添加您的目的地模式和/或您想要的輸出。 – Filburt 2011-02-18 07:59:03

+0

這只是一個基於我原始輸入文件創建的虛擬xml文件。問題是我無法分享原始文件。結構明智兩者都是相同的 – KK99 2011-02-18 08:24:42

回答

1

Q1:如何獲得的第二COMPANYNAME

1)添加迭代 functoid的(高級的functoid),並連接到COMPANY節點在源模式

2)添加平等 functiod(邏輯的functoid),並連接到迭代的functoid

3)配置等於 functoid;添加恆定值2

4)添加值映射(壓扁) functoid的(高級的functoid)

5)連接的平等輸出到值映射的輸入

6)連接NAME源模式的輸入價值映射

7)Con 值映射的NECT輸出到目標架構元件


Q2:不是所有的源TEXT元素被轉換爲目的地node

這似乎是你的映射concering Q1的副作用,我不能重現你的錯誤。

檢查所涉及元素/節點的源和目標架構的minOccurs和maxOccurs。