亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6756 | 回復(fù): 1
打印 上一主題 下一主題

Ruby,Rails關(guān)于XML的處理的小結(jié) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-08-28 08:01 |只看該作者 |倒序?yàn)g覽
REXML是處理,解析XML的包,是Ruby自帶的包。因?yàn)橹С諼Path表達(dá)式的查詢,所以用來查詢結(jié)點(diǎn),解析XML非常方便。

通過最近做項(xiàng)目對(duì)解析和處理XML有如下認(rèn)識(shí):

REXML功能非常強(qiáng)大,但是使用上不是特別的方便,Rails把它封裝了一下,生成XML非常容易,代碼也很簡單直觀。

但對(duì)于解析XML,用REXML就可以了,十分方便并且靈活。轉(zhuǎn)載自:ruby

生成XML,用Rails的Builder::XmlMarkup比較方便(rjs模板好像就用這個(gè),由于項(xiàng)目需要生成XML字符后直接傳給另一個(gè)方法,所以用不了rjs)

以下示例引用<<rogrammingRuby 1.9>>

  1. <classes language="ruby">
  2.        <class name="Numeric">
  3.          Numeric represents all numbers.
  4.          <class name="Float">
  5.             Floating point numbers have a fraction and a mantissa.
  6.          </class>
  7.          <class name="Integer">
  8.             Integers contain exact integral values.
  9.             <class name="Fixnum">
  10.                Fixnums are stored as machine ints.
  11.             </class>
  12.             <class name="Bignum">
  13.                Bignums store arbitraty-sized integers.
  14.             </class>
  15.          </class>
  16.        </class>
  17.      </classes>
復(fù)制代碼

  1. require 'rexml/document'
  2.      xml = REXML::Document.new(File.open("demo.xml"))
  3.    
  4.      puts "Root element: #{xml.root.name}"
  5.      puts "\nThe names of all classes"
  6.      xml.elements.each("//class") {|c| puts c.attributes["name"] }
  7.      puts "\nThe description of Fixnum"
  8.      p xml.elements["//class[@name='Fixnum']"].text
  9.      produces:
  10.      Root element: classes
  11.      The names of all classes
  12.      Numeric
  13.      Float
  14.      Integer
  15.      Fixnum
  16.      Bignum
  17.      The description of Fixnum
  18.      "\n             Fixnums are stored as machine ints.\n         "
復(fù)制代碼


以下示例來源Rails API Builder::XmlMarkup
  1. xm.instruct!                   # <?xml version="1.0" encoding="UTF-8"?>
  2.   xm.html {                      # <html>
  3.     xm.head {                    #   <head>
  4.       xm.title("History")        #     <title>History</title>
  5.     }                                       #   </head>
  6.     xm.body {                     #   <body>
  7.       xm.comment! "HI"           #     <! -- HI -->
  8.       xm.h1("Header")            #     <h1>Header</h1>
  9.       xm.p("paragraph")          #     <p>paragraph</p>
  10.     }                                      #   </body>
  11.   }                                        # </html>
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-08-28 16:39 |只看該作者
用libxml可以大幅度提高對(duì)XML解析速度,對(duì)于超過1M以上的XML解析速度大大高于REXML。
http://libxml.rubyforge.org/
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP