加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用构建器生成XML时的Extra

发布时间:2020-12-16 22:08:39 所属栏目:百科 来源:网络整理
导读:我试图使用Builder生成KML.我知道他们是一些选择,以帮助这一点,但我将会做一些2.2特定的事情,不支持我所看到的KML宝石,一般希望能够完成这一杠杆只是一个 XML框架. 在渲染我的kml / xml时,我在文件末尾获得一个标签.我强烈地怀疑我设置了我的Builder对象,或
我试图使用Builder生成KML.我知道他们是一些选择,以帮助这一点,但我将会做一些2.2特定的事情,不支持我所看到的KML宝石,一般希望能够完成这一杠杆只是一个 XML框架.

在渲染我的kml / xml时,我在文件末尾获得一个标签.我强烈地怀疑我设置了我的Builder对象,或者如何渲染输出,我错过了一些基本的东西.以下是一个简单的例子来演示这个问题:

def kml2dot2
  @site = Site.find(params[:id])
  xml = Builder::XmlMarkup.new(:indent => 2)
  xml.instruct!
  xml.kml("xmlns" => "http://www.opengis.net/kml/2.2") {
    xml.Placemark do
      xml.name @site.mapNameFull
      xml.Point do
        xml.coordinates @site.lat.to_s + "," + @site.lng.to_s + ",0"
      end
    end
  }
  render :text => xml,:type=>"text/kml"

end

生产:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Seattle City Hall</name>
    <Point>
      <coordinates>47.6040746,-122.33005,0</coordinates>
    </Point>
  </Placemark>
</kml>
<to_s/>

我试图理解如何避免< to_s />被包括在内,我在做错了什么.感谢任何见解.

解决方法

您不需要初始化XML构建器对象.只需使用集成的构建器模板处理程序.

>调用模板kml2dot2.xml.builder
>直接在视图中编写代码

def kml2dot2
  @site = Site.find(params[:id])
end

# kml2dot2.xml.builder
xml.kml("xmlns" => "http:// www.opengis.net/kml/2.2") do
  xml.Placemark do
    xml.name @site.mapNameFull
    xml.Point do
       xml.coordinates "#{@site.lat},#{@site.lng},0"
    end
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读