使用ruby将xml导入mysql的最佳方法

时间:2013-05-28 12:34:39

标签: mysql ruby xml xml-parsing

搜索后,我找到了以下资源:

http://xml-simple.rubyforge.org

http://www.tutorialspoint.com/ruby/ruby_xml_xslt.htm

在尝试之前我只是想确保有更好的方法将xml文件的节点/标签的值导入mysql(从一个xml文件到mysql中的多个表),这些天可能已经有人这样做了

写这个,我也觉得重点不是如何将xml导入mysql,但是如何读取xml文件的值并将它们写入mysql可能是一个不同的问题......

如果我的问题不太明确,我道歉。

示例xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ShipmentRequest>
   <Message>
      <Header>
      <MemberId>MID-0000001</MemberId>    
      <MemberName>Bruce</MemberName>
      <DeliveryId>0000001</DeliveryId>
      <OrderNumber>ON-000000001</OrderNumber>
      <ShipToName>Alan</ShipToName>
      <ShipToZip>123-4567</ShipToZip>
      <ShipToStreet>West</ShipToStreet>
      <ShipToCity>Seatle</ShipToCity>
       <Payments>
        <PayType>Credit Card</PayType>
        <Amount>20</Amount>
      </Payments>
      <Payments>
        <PayType>Points</PayType>
        <Amount>22</Amount>
      </Payments>
      <PayType />
      </Header>
    <Line>
      <LineNumber>3.1</LineNumber>
      <ItemId>A-0000001</ItemId>
      <Description>Apple</Description>
      <Quantity>2</Quantity>
      <UnitCost>5</UnitCost>
    </Line>
    <Line>
      <LineNumber>4.1</LineNumber>
      <ItemId>P-0000001</ItemId>
      <Description>Peach</Description>
      <Quantity>4</Quantity>
      <UnitCost>6</UnitCost>
    </Line>
    <Line>
      <LineNumber>5.1</LineNumber>
      <ItemId>O-0000001</ItemId>
      <Description>Orange</Description>
      <Quantity>2</Quantity>
      <UnitCost>4</UnitCost>
    </Line>
  </Message>
</ShipmentRequest>

1 个答案:

答案 0 :(得分:1)

如果要将XML结构保留在数据库中,这是一项非常重要的任务。我知道的一种最简单的方法是使用dewey labeling scheme,但它的表现并不差。

但是,如果您只想阅读XML并创建自己的自定义查询,则可以使用一个XML解析器作为SimpleXML,Nokogiri或REXML并创建自定义查询。