国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby中XML格式數據處理庫REXML的使用方法指南

2019-10-26 19:29:06
字體:
來源:轉載
供稿:網友

以樹方式使用 REXML
REXML 的目的是 正好夠用。在最大程度上,它能很好地完成任務。 實際上, REXML 支持兩種不同樣式的 XML 處理 ― “樹”和“流”。 第一種樣式是 DOM 所嘗試要做的更簡單的版本;第二種樣式是 SAX 所嘗試要做的更簡單的版本。 讓我們先研究樹樣式。假設我們要提取上一個示例中的同一個地址簿文檔。 下面的示例來自我所創建的經修改的 eval.rb ; 標準 eval.rb (鏈接到 Ruby 教程)可以根據對復雜對象的表達式求值顯示非常長的計算結果 ― 我的 eval.rb 在沒有錯誤發生的情況下不作出反應:
如何使用 REXML 來引用嵌套數據

ruby> require "rexml/document"ruby> include REXMLruby> addrbook = (Document.new File.new "address.xml").rootruby> persons = addrbook.elements.to_a("http://person")ruby> puts persons[1].elements["address"].attributes["city"]New York

這個表達式很普通。 .to_a() 方法創建文檔中所有 <person> 元素的數組,在其它命名中它可能是有用的。 元素有點象 DOM 節點,但它其實更接近于 XML 本身(而且使用起來也更簡單)。 .to_a() 的參數是 XPath,在這種情況下,可以標識文檔中任何地方的所有 <person> 元素。如果我們只需要第一層上的元素,可以使用:
創建匹配元素的數組

ruby> persons = addrbook.elements.to_a("/addressbook/person")

我們甚至可以更直接地將 XPath 用作 .elements 屬性的重載索引。例如:
使用 REXML 來引用嵌套數據的另一種方法

ruby> puts addrbook.elements["http://person[2]/address"].attributes["city"]New York

請注意,XPath 使用基于 1 的索引,不象 Ruby 和 Python 數組使用基于 0 的索引。換句話說, 它仍是我們正在檢查其所在城市的同一個人。通過查看 REXML 請注意,XPath 使用基于 1 的索引,不象 Ruby 和 Python 數組使用基于 0 的索引。換句話說, 它仍是我們正在檢查其所在城市的同一個人。通過查看
用 REXML 顯示元素的 XML 源代碼

ruby> puts addrbook.elements["http://person[2]/address"]<address city='New York' street='118 St.' number='344' state='NY'/>ruby> puts addrbook.elements["http://person[2]/contact-info"]<contact-info> <email address='robb@iro.ibm.com'/> <home-phone number='03-3987873'/></contact-info>

此外,XPath 不必只與一個元素匹配。我們已在定義 persons 數組時看見過,但另一個示例強調了這一點:
將多個元素與 XPath 匹配

ruby> puts addrbook.elements.to_a("http://person/address[@state='CA']")<address city='Sacramento' street='Spruce Rd.' number='99' state='CA'/><address city='Los Angeles' street='Pine Rd.' number='1234' state='CA'/>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永寿县| 大安市| 勃利县| 双流县| 伊吾县| 咸阳市| 塔城市| 宜春市| 巨鹿县| 兰溪市| 宣武区| 镶黄旗| 文安县| 清徐县| 延长县| 静海县| 贵南县| 遂宁市| 旺苍县| 古蔺县| 金阳县| 普兰店市| 邯郸县| 镇安县| 股票| 榆林市| 潢川县| 城固县| 蒙自县| 革吉县| 西吉县| 广昌县| 惠东县| 洞头县| 全南县| 永和县| 泸定县| 西盟| 金山区| 平顶山市| 佛教|