如何使用从数据库中获取数据来创建XML

时间:2013-01-28 13:13:43

标签: ruby xml ruby-on-rails-3

我从数据库中获取数据并以XML格式发送响应,如下所示。

我想将数据提取到数组或哈希,然后响应xml ....或者创建直接xml ..

请参考下面的xml示例...

<Response>
    <Tolls>
        <Toll>
            <Id>123</Id>
            <Name>Bradfield Highway</Name>
            <Address>Bradfield Highway, New York</Address>
            <Charge>5.95</Charge>
            <Location lat="41.145556" lng="-73.995"/>
               <EntryRects>
                 <EntryRect>
                   <Points>
                      <Point lat="41.145556" lng="-73.995"/>
                      <Point lat="41.145556" lng="-73.995"/>
                      <Point lat="41.145556" lng="-73.995"/>
                      <Point lat="41.145556" lng="-73.995"/>
                   </Points>
                 </EntryRects>
                 ...
               </EntryRects>
         </Toll>
        <Toll>
            ...
        </Toll>
        ...
    </Tolls>
</Response>

如果有人知道的话,请尽快给我回复......

2 个答案:

答案 0 :(得分:0)

你应该使用Builder::XmlMarkup,它提供了一种创建XML标记和数据结构的简单方法

答案 1 :(得分:0)

您没有说出您正在使用的数据库,但是许多数据库可以作为查询的结果为您生成XML,而不是返回正常的“select”语句的输出。这将是最快/最简单的路径,因为无论如何数据都必须返回到您的应用程序,所以让DBM即时进行转换。

第二个最简单的方法是使用Nokogiri,Builder或其他几种宝石之一。他们可以处理非ASCII字符的编码,指定正确的标题,并确保嵌套和标记闭包是正确的。这就是人们使用这些工具的原因,因为它们可以节省大量的编码。

最后的选择应该是尝试自己做。仅仅因为你问了这个问题,我怀疑你并不真正理解创建格式良好的XML的原因。可以使用ERB或可能 HAML之类的东西生成简单的XML输出来帮助嵌套,但编码将直接落在你身上。如果您坚持这样做,那么请开始阅读Stack Overflow页面右侧的所有相关链接,以及您可以找到的任何XML文档。