« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9701187 建立时间:2004年12月20日 |

| |
[java语言]关于Jaxen的Xpath  原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2007/6/9 20:58:56 |
以前真是见识少,不知道jaxen支持Jaxp。原来jaxen是dom4j的xpath支持库,dom4j的xpath api是依赖jaxen完成的,其功能本身和dom4j.jar没有什么关系。其实dom4j从2005年就没有更新过,做的非常不标准,不支持schema 带namespace验证。使用jaxen非常简单XPath xpath = new DOMXPath("/locan/group["+xpathstr+"]"); List<Node> ls=xpath.selectNodes(rootnode); for(Node node:ls) { node=cre.importNode(node,true); creroot.appendChild(node); }取出数值 DOMXPath xpath = new DOMXPath( "count(/*/@*)" ); Number value = xpath.numberValueOf(doc);形成一个mappublic Map getValuesAsMap( String query ) throws JaxenException, IllegalArgumentException, SAXException, IOException {
XPath xpath = createXPath( query ); List results = (List)xpath.selectNodes( document );
Map result = new HashMap(); Iterator iter = results.iterator();
while(iter.hasNext()) { Object element = iter.next();
if (element instanceof org.w3c.dom.Node) { org.w3c.dom.Node node = (org.w3c.dom.Node)element; result.put(node.getNodeName(), nodeContent(node)); } }
return result;} |
|
|