华硕z270m plus评测:jxpath与xpath

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 07:14:32

今天查翻自己的资料时,发现了一个jxpath的文档,就打开看看是什么?以前没有用过,经过一个上午的折腾,终于搞明白了,原来jxpath是让JAVA可以轻松取的对象了,或是集合了,等这些东西中的属性,不管这些属性多复杂,对jxpath都是很轻松的,还是举个例子吧,比如说有一个MAP对象,我想取到MAP的KEY值,就要先map.keySet(),取到一个SET的集合,要是想取VALUES就要mapSource.values(),取到后再一一进行操作,而jxpath可以让你很轻松的直接取到KEY中的对象,或是VALUES中的对象。以下只是其中一种操作,jxpath还可以对JAVA的所有的集合等进行操作。有需要例子和源代码的可以发邮件。

package com.jxpath;

import java.util.HashMap;
import java.util.Map;

public class MyMapSource {
private Map mapSource = new HashMap();

// 构造方法初始化一起数据
public MyMapSource() {
   mapSource.put("id", new Integer(5));
   mapSource.put("name", "name");
  
}

public Map getMapSource() {
   return this.mapSource;
}
}

package com.jxpath;

import org.apache.commons.jxpath.JXPathContext;

public class JxpathMap {
public static void main(String[] args) {
   // 实例化MyMapSource对象
   MyMapSource myMapSource = new MyMapSource();
   // 实例化JXPath上下文
   JXPathContext context = JXPathContext.newContext(myMapSource);
   // 通过JXPath访问Map对象的内容
   // getValue方法的参数使用了XPath语法
   // mapSource/id中的mapSource表示MyMapSource对象的属性,他是一个Map类型的对象,id表示获取该Map对象的id字段
   Integer id = (Integer) context.getValue("mapSource/id");
   System.out.println(id);

}
}

XPath是一个获取XML文档中你所需要的节点元素的组件。它允许你用很少的代码就能获取指定的路径下你所选取的节点的值。例如,你有一个类似下面的XML文档:





   Big Metal Pot
   19.95



   Plate

   12.95



   Spoon
   4.95





你可以用下面的代码来获取产品的种类
myXPathDocument.selectNodes("/products/product");

你也可以用这样的代码来获得所有产品中价格超过5美圆的产品:
myXPathDocument.selectNodes("/products/product[./price > 5]");

你也可以获取所有的 SKUs 就像这样:
myXPathDocument.selectNodes("/products/product/@sku");

XPath是一种非常完美的能够简单快捷而且效率高的读取XML文档的语言。