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

Ruby Builder – XML输出编码HTML实体

发布时间:2020-12-17 03:20:00 所属栏目:百科 来源:网络整理
导读:我有一个使用Builder的小 ruby脚本. require 'rubygems'require 'builder'content = eosSOME TEXT,GOES TO UPPERCASEother textemitalicsemeosxml = Builder::XmlMarkup.new xml.instruct! :xml,:version = '1.0' xml.book :id = 1.0 do xml.keyPic "keyPic1
我有一个使用Builder的小 ruby脚本.

require 'rubygems'
require 'builder'

content = <<eos
SOME TEXT,GOES TO UPPERCASE
other text
<em>italics<em>
eos

xml = Builder::XmlMarkup.new
  xml.instruct! :xml,:version => '1.0'
  xml.book :id => 1.0 do
    xml.keyPic "keyPic1.jpg"
    xml.parts do
      xml.part :partId => "1",:name => "name" do
        xml.chapter :title => "title",:subtitle => "subtitle" do
          xml.text content
        end
      end
    end
  end

p xml

从CLI(Cygwin)运行时,我得到以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<book id="1.0">
  <keyPic>keyPic1.jpg</keyPic>
    <parts>
      <part partId="1" name="name">
        <chapter title="title" subtitle="subtitle">
          <text>
          SOME TEXT,GOES TO UPPERCASE
          other text
          &lt;em&gt;italics&lt;em&gt;
          </text>
        </chapter>
      </part>
    </parts>
</book><inspect/>

但是,我想要的输出是:

<text>
SOME TEXT,GOES TO UPPERCASE
other text
<em>italics<em/>
</text>

我曾尝试使用htmlentities gem’解码’内容,但无济于事.

解决方法

使用<<无需修改即可插入文本的操作.

xml.text do |t|
  t << content
end

(编辑:李大同)

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

    推荐文章
      热点阅读