2017-11-11 40 views
1

我是Talend的新手,在使用txmlmap時遇到問題。如何在txmlMap中使用talend優先執行xml標記

我有一個XML文件,我需要從該XML插入到SQL Server的數據。我已經在Talend連接到SQL Server,但是我在確定XML標籤優先級時遇到了一些問題。

這裏是我的XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<data> 
    <entry name="opertaion-round-title"> 
     <valstr>ROUND 1</valstr> 
    </entry> 
    <entry name="site"> 
     <valstr>SITE NAME</valstr> 
    </entry> 
    <entry name="plant"> 
     <valstr>PLANT NAME</valstr> 
    </entry> 
    <entry name="opertaion-area"> 
     <valstr>G AREA</valstr> 
    </entry> 
</data> 

我使用txmlMap從XML到數據庫傳遞數據。我有四張桌子。我需要根據條目標記(名稱)來設置值。

SITES, 
PLANTS, 
OPERATING_AREAS, 
OPERATING_ROUNDS 

我需要把網站的價值網站表,植物價值的植物表,操作區域價值OPERATING_AREAS表和操作圓標題OPERATING_ROUNDS表。

我成功地獲取表中的值,但是我首先要將站點值插入到SITES表中,然後在PLANTS表中插入植物值,然後在OPERATING_AREAS和OPERATING_ROUNDS表中插入值。

我面臨的問題是,無論什麼值首先出現在XML插入到該表中。即在這種情況下,它首先將值插入到OPERATING_ROUNDS表中,因爲xml中的第一個標記是<entry name="opertaion-round-title">。但是,我要在以下順序

SITES 
PLANTS 
OPERATING_AREAS 
OPERATING_ROUNDS 

所以反正我們可以在其中設置txmlMap標籤執行的優先級,這樣無論任何標籤至上它會在此基礎上,我們有優先級的進程標籤定義。

請找到

design of components

txmlMap configuration

回答

1

如果我沒有記錯的話,你可能需要overthink你覺得你的方式連接的屏幕截圖正在處理數據:

  • 首先,你無線將循環一個XML文件(如果data部分中有更多條目)
  • 然後您將執行一些映射。通常,這發生在輸入組件中。所以這就是你要說的地方「我有一個名爲SITES的行變量,它應該填充data/sites/valstr的內容」。沒有映射的圖片,所以這很難猜出
  • 您的行將被4個值填滿,您記下的那4個
  • 然後,您只需將它們分成您創建的四個存儲桶(輸出組件進入數據庫)

意思是,沒有必要的priortization。你只需要確保映射是正確的,然後你也可以在tMap中做到這一點。