成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Builder——用Ruby創(chuàng)建XML

Flink_China / 728人閱讀

摘要:的提供了一個(gè)簡(jiǎn)單的方法創(chuàng)建標(biāo)記和數(shù)據(jù)結(jié)構(gòu)。類(lèi)生成標(biāo)記,生成事件。用法或打印特性支持注釋也支持處理指令部分支持聲明可以嵌套聲明命名空間默認(rèn)情況下特殊字符會(huì)自動(dòng)轉(zhuǎn)義如果不想轉(zhuǎn)義,請(qǐng)使用符號(hào)代替字符串。

Jim Weirich的Builder提供了一個(gè)簡(jiǎn)單的方法創(chuàng)建XML標(biāo)記和數(shù)據(jù)結(jié)構(gòu)。

類(lèi)

Builder::XmlMarkup::生成XML標(biāo)記,Builder::XmlEvents::生成XML事件。

用法
require "rubygems"
  require_gem "builder", "~> 2.0"

  builder = Builder::XmlMarkup.new
  xml = builder.person { |b| b.name("Jim"); b.phone("555-1234") }
  xml #=> Jim555-1234

require "rubygems"
  require_gem "builder"

  builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
  builder.person { |b| b.name("Jim"); b.phone("555-1234") }
  #
  # 打印:
  # 
  #   Jim
  #   555-1234
  # 
特性

支持XML注釋

xml_markup.comment! "This is a comment"
  #=>  

也支持XML處理指令

xml_markup.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8"
  #=>  

部分支持XML entity聲明

xml_markup.declare! :DOCTYPE, :chapter, :SYSTEM, "../dtds/chapter.dtd"
  #=>  

可以嵌套聲明

@xml_markup.declare! :DOCTYPE, :chapter do |x|
  x.declare! :ELEMENT, :chapter, :"(title,para+)"
  x.declare! :ELEMENT, :title, :"(#PCDATA)"
  x.declare! :ELEMENT, :para, :"(#PCDATA)"
end

#=>


  
  
]>

XML命名空間

xml.SOAP :Envelope do ... end

默認(rèn)情況下特殊字符會(huì)自動(dòng)轉(zhuǎn)義:

xml = Builder::XmlMarkup.new
xml.sample(:escaped=>"This&That", :unescaped=>:"Here&There")
xml.target!  =>
  

如果不想轉(zhuǎn)義,請(qǐng)使用符號(hào)代替字符串。

支持UTF-8

$KCODE = "UTF8"
xml = Builder::Markup.new
xml.instruct!(:xml, :encoding => "UTF-8")
xml.sample("I?t?rnati?nàl")
xml.target!  =>
  "I?t?rnati?nàl"

GitHub頁(yè)面

編譯 SegmentFault

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110333.html

相關(guān)文章

  • Java之XML解析

    摘要:本篇講在中的解析,最后會(huì)簡(jiǎn)單地講在解析時(shí)的做法。解析器通過(guò)解析校驗(yàn)的文件,可以知道哪些元素沒(méi)有文本節(jié)點(diǎn)的子元素,因此可以幫我們剔除空白字符。類(lèi)將類(lèi)進(jìn)一步封裝,用表示。當(dāng)構(gòu)造對(duì)象時(shí),會(huì)自動(dòng)解析出元素的元素名元素的屬性等。 許多的Java框架都支持用戶(hù)自己配置,其中很常見(jiàn)的就是使用XML文件進(jìn)行配置。本篇講XML在Java中的解析,最后會(huì)簡(jiǎn)單地講Mybatis在解析XML時(shí)的做法。 XML...

    cheng10 評(píng)論0 收藏0
  • Java之XML解析

    摘要:本篇講在中的解析,最后會(huì)簡(jiǎn)單地講在解析時(shí)的做法。解析器通過(guò)解析校驗(yàn)的文件,可以知道哪些元素沒(méi)有文本節(jié)點(diǎn)的子元素,因此可以幫我們剔除空白字符。類(lèi)將類(lèi)進(jìn)一步封裝,用表示。當(dāng)構(gòu)造對(duì)象時(shí),會(huì)自動(dòng)解析出元素的元素名元素的屬性等。 許多的Java框架都支持用戶(hù)自己配置,其中很常見(jiàn)的就是使用XML文件進(jìn)行配置。本篇講XML在Java中的解析,最后會(huì)簡(jiǎn)單地講Mybatis在解析XML時(shí)的做法。 XML...

    gclove 評(píng)論0 收藏0
  • Docker 在 Coding WebIDE 項(xiàng)目中的運(yùn)

    摘要:是一個(gè)典型的模式架構(gòu),用戶(hù)通過(guò)終端將字符流傳遞給。仿照的工作原理,我們?cè)趨f(xié)議之上設(shè)計(jì)了,見(jiàn)下圖真實(shí)實(shí)現(xiàn)中,是應(yīng)用層的通訊協(xié)議。僵尸進(jìn)程問(wèn)題我們知道由于缺少而導(dǎo)致僵尸進(jìn)程無(wú)法回收的問(wèn)題迄今存在。進(jìn)入構(gòu)建環(huán)境執(zhí)行命令。 Coding WebIDE 做個(gè)國(guó)內(nèi)首個(gè)基于 Docker 技術(shù)的云端開(kāi)發(fā)平臺(tái)于4月1日正式上線(xiàn)。本文主要和大家分享和探討 Docker 在 Web IDE 中運(yùn)用的一些經(jīng)...

    tinysun1234 評(píng)論0 收藏0
  • XML解析詳解|樂(lè)字節(jié)

    摘要:解析獲取解析器獲取文檔獲取根節(jié)點(diǎn)獲取根節(jié)點(diǎn)下所有的子節(jié)點(diǎn),也可以根據(jù)標(biāo)簽名稱(chēng)獲取指定的直接點(diǎn)獲取元素的名稱(chēng)和里面的文本創(chuàng)建創(chuàng)建節(jié)點(diǎn)創(chuàng)建屬性設(shè)置文本設(shè)置關(guān)系關(guān)于解析先講到這里了,請(qǐng)繼續(xù)關(guān)注樂(lè)字節(jié),后續(xù)超級(jí)干貨奉上,快快樂(lè)樂(lè)學(xué)。 大家好,樂(lè)字節(jié)的小樂(lè)又來(lái)了,Java技術(shù)分享哪里少的了小樂(lè)!上次我們說(shuō)了可擴(kuò)展標(biāo)記語(yǔ)言XML之二:XML語(yǔ)言格式規(guī)范、文檔組成,本文將介紹重點(diǎn)——XML解析。sh...

    LinkedME2016 評(píng)論0 收藏0
  • Java培訓(xùn)學(xué)習(xí)之Java開(kāi)源軟件的匯總

    摘要:開(kāi)源軟件的匯總開(kāi)源插件是一個(gè)類(lèi)似于的插件,它可以幫助你在不退出的環(huán)境下瀏覽本地文件系統(tǒng)。事件模型支持基于的事件提交。開(kāi)源容器是一個(gè)非侵入式的對(duì)象反轉(zhuǎn)控制容器容器。開(kāi)源插件提供一個(gè)可針對(duì)文件語(yǔ)法進(jìn)行著色的編輯器。 Java開(kāi)源軟件的匯總:EcSplorer 【Java開(kāi)源 Eclipse插件】EcSplorer(Eclips...

    qiangdada 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<