首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

為 JavaBeans 強化 XPath 功能:Apache JXPath 實戰指南

     編輯:Java 程式設計入門

向一個 JavaBean 請求 'addressbook[1].state.code' 是現在還在使用的和 JavaBeans 進行交互的一個通常方法,但是你現在可以更進一步使用功能更強大的 XPath 規範。

創建 XPath 的目的是訪問和修改 XML 中的資料,但是 Apache Jakarta 的一個新項目允許你將強大的 XPath 規範的功能應用到普通的 JavaBeans 上。

實戰範例

作為一個例子,我們使用具有下面結構的 JavaBean:

  • Person.name 是一個字串 String
  • Person.age 是一個整數
  • Person.birthtown 是一個 Town 物件
  • Person.address 是一個 Address 物件的陣列
  • Town.name 是一個字串
  • Address.number 是一個字串
  • Address.street 是一個字串
  • Address.town 是一個 Town 物件

(為了簡單沒有提供原始碼)

對於給定的 Person 物件,你可以使用 "name" 得到物件的名字,你可以使用 "birthtown/name" 得到出生地的名字,你也可以使用 "address[number='21']/town/name" 得到和地址(例如 21)關聯的城鎮的名字。

除了更強大以外,XPath 和通常的 Bean 符號的主要不同是使用反斜線('/')而不是句點('.')分隔元素,一旦你習慣這個特徵就都會變得很簡單。

JXPath 程式碼範例

import org.apache.commons.jxpath.JXPathContext;
// ...
Person person = ...;
JXPathContext context = JXPathContext.newContext(person);
System.out.println(context.getValue("name"));
System.out.println(context.getValue("age"));
System.out.println(context.getValue("birthtown/name"));
System.out.println(context.getValue("address[number='21']/street"));
System.out.println(context.getValue("address[number='21']/town/name"));
// ...

XPath 可以用於設定值或者創建 Beans,當然也可以讀取值,關於 XPath 和它的 JXPath 實現的更多資訊請參考 JXPath 官方網站。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved