如何从XML文件创建PostgreSQL表...

问题描述:

我有一个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://*.com/a/7628453/939860)。 –

虽然Erwin说得对,可以用PostgreSQL工具来完成,但我建议你自己去做自定义翻译,因为这里有几个原因。

第一个是确定合适的XML到PostgreSQL类型转换。你可能想自己选择这些。但是这个例子突出了一个非常不同的问题,如何处理嵌套的数据结构。例如,您可以存储XML片段。您可以存储文本,json或类似内容。你可以创建其他表和fkey。

总的来说,我几乎总是发现最好的方法是简单地手动创建表。这将人为判断替换为自动映射,并允许您创建比计算机更好的匹配。