;mapSource/id");
System.out.println("id: " + id);
}
}
E.访问XML文件,新建Companys类:
package demo;
import java.net.URL;
import org.apache.commons.jxpath.Container;
import org.apache.commons.jxpath.xml.DocumentContainer;
public class Companys ...{
private Container companys = null;
public Container getCompanys() ...{
if (companys == null) ...{
URL url = getClass().getResource("jxpath.xml");
companys = new DocumentContainer(url);
}
return companys;
}
}
Jakarta-Common-JXPath使用笔记(5)
时间:2011-01-28 csdn博客 沈斌
新建jxpath.xml文件:
<?xml version="1.0" ?>
<companys>
<company id="101">
<name>sun</name>
<address>
<street>18 #,WenShan Road</street>
</address>
</company>
<company id="102">
<name>ibm</name>
<address>
<street>18 #,WenEr Road</street>
</address>
</company>
</companys>
测试代码:
package demo;
import org.apache.commons.jxpath.JXPathContext;
public class XmlDemo ...{
public static void main(String[] args) ...{
//实例化Companys对象
Companys companys = new Companys();
//初始化JXPath上下文
JXPathContext context = JXPathContext.newContext(companys);
//获得指定记录的子元素的内容
/**//*getValue方法的参数
"companys/companys/company[@id = ''101'']/address/street"
使用了XPath语法
其中的第一个companys表示访问Companys对象的companys属性
第二个companys表示访问XML数据中的companys元素
company、address、street都是xml中的元素的名字
@id = ''101''是一个条件表达式,表示符合条件的company元素的id属性必须是101
*/
System.out.println("street=" + (String) context.getValue("companys/companys/company[@id = ''101'']/address/street"));
//通过JXPath获取xml元素的属性的值
System.out.println("id=" + context.getValue("companys/companys/company[@id = ''101'']/@id"));
//通过JXPath获取xml元素的子元素的值
System.out.println("p_id="+ context.getValue("companys/companys/company[name = ''sun'']/name"));
}
}
详细请参阅:
http://www.myfaq.com.cn/A200508/2005-08-05/183498.html
http://c.lstc.edu.cn:8090/kj/Manfeel/w3pop/xpath_operators.asp.htm
http://www.ibm.com/developerworks/cn/xml/x-wxxm35.html |