2012-11-26 114 views
0

我有一個XML文檔文件。該文件的部分看起來像這樣:如何從XML文件創建PostgreSQL表...

-<attr> 
    <attrlabl>COUNTY</attrlabl> 
    <attrdef>County abbreviation</attrdef> 
    <attrtype>Text</attrtype> 
    <attwidth>1</attwidth> 
    <atnumdec>0</atnumdec> 
    -<attrdomv> 
     -<edom> 
      <edomv>C</edomv> 
      <edomvd>Clackamas County</edomvd> 
      <edomvds/> 
     </edom> 
     -<edom> 
      <edomv>M</edomv> 
      <edomvd>Multnomah County</edomvd> 
      <edomvds/> 
     </edom> 
     -<edom> 
      <edomv>W</edomv> 
      <edomvd>Washington County</edomvd> 
      <edomvds/> 
     </edom> 
    </attrdomv> 
</attr> 

從這個XML文件,我想創建一個PostgreSQL表attrlabl,attrdef,attrtype和attrdomv列。我感謝你的建議!

+0

attrlabl有一個項目,attrdomv有子女和子女。這不會轉換成任何表格格式。如果你想強制它,你將不得不利用一個XML解析器和滾動你自己的翻譯程序來從它生成SQL。 –

+1

@EricLeschinski:實際上,它可以用PostgreSQL工具完成,但它很複雜,我現在沒有時間了。我前一段時間發佈了一個相關的答案[here](http://stackoverflow.com/a/7628453/939860)。 –

回答

0

雖然Erwin說得對,可以用PostgreSQL工具來完成,但我建議你自己去做自定義翻譯,因爲這裏有幾個原因。

第一個是確定合適的XML到PostgreSQL類型轉換。你可能想自己選擇這些。但是這個例子突出了一個非常不同的問題,如何處理嵌套的數據結構。例如,您可以存儲XML片段。您可以存儲文本,json或類似內容。你可以創建其他表和fkey。

總的來說,我幾乎總是發現最好的方法是簡單地手動創建表。這將人爲判斷替換爲自動映射,並允許您創建比計算機更好的匹配。