- 浏览: 1870173 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (514)
- OPEN (41)
- WARN (33)
- EXPER (16)
- RESOURCE (7)
- TOOL (4)
- DWR (10)
- Struts1.x (10)
- Ibtais (18)
- MyEclipse (30)
- Sql Server (64)
- Tomcat (7)
- APACHE (4)
- JSP (18)
- SERVLET (6)
- ENGLISH (0)
- ECSide (8)
- JasperReports (7)
- JAVA (24)
- JS (42)
- XML (26)
- CVS (8)
- Mind (1)
- JQUERY (2)
- IBATIS (6)
- PROJECT (0)
- STRUTS2 (0)
- PROXOOL (0)
- SPRING (4)
- Hibernate (0)
- SSI (0)
- JBPM (11)
- FLEX (3)
- JSON (2)
- GWT (1)
- jeecms v3 (1)
- Flash (2)
- DATA (1)
- ORACLE (3)
- 查询oracle 中逗号分隔字符串中所有值 (1)
最新评论
-
小小西芹菜:
GoEasy web三步轻松实现web实时推送1. 引入goe ...
服务器推送技术 java -
kg_1997:
这个方法太棒了,可以不用to_date函数,实在是棒!!!
java/oracle日期处理 -
wodesunday:
:idea:
SQL的分段统计查询语句 -
wodesunday:
引用
SQL的分段统计查询语句 -
BlueSkator:
讲的有点浅,没有深入进去
tomcat需要的重新发布和重启服务器的几种情况
在用jdom来解析xml文档的时候,我们常常需要快速定位到某一个节点进行读取或修改操作。定位节点,这正是xpath表达式发挥作用的地方。从beta 9(www.jdom.org有下载)开始,jdom开始支持解析xpath路径表达式了,这样我们在用jdom来解析xml文档的时候,方便多了。请看例子
1.示例用xml文件,kk.xml
<?xml version = "1.0" encoding="GB2312" ?>
<联系人列表>
<联系人>
<姓名>张三</姓名>
<ID>001</ID>
<公司>A公司</公司>
<EMAIL>zhang@aaa.com</EMAIL>
<电话 类型="公司">(010)62345678</电话>
<电话 类型="家庭">(010)88888888</电话>
<地址>
<街道>五街1234号</街道>
<城市>北京市</城市>
<省份>北京</省份>
</地址>
</联系人>
<联系人>
<姓名>李四</姓名>
<ID>002</ID>
<公司>B公司</公司>
<EMAIL>li@bbb.org</EMAIL>
<电话 类型="公司">(021)87654321</电话>
<地址>
<街道>南京路9876号</街道>
<城市>上海</城市>
<省份>上海</省份>
</地址>
</联系人>
</联系人列表>
2.为了找到张三的家庭的电话号码,使用下列代码段
package test;
import java.util.List;
import java.net.URL;
import org.jdom.*;
import org.jdom.xpath.*;
import org.jdom.input.*;
import java.io.*;
import java.util.*;
public class Test{
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("kk.xml");
Element root = doc.getRootElement();
XPath xpath = XPath.newInstance("//电话[../姓名='张三'][@类型='家庭']");
List list = xpath.selectNodes(root);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element item = (Element) iter.next();
System.err.println(item.getText());
}
}
输出结果正是我们想要的:(010)88888888.怎么样,很方便吧:)。
8过呢,我这个表达式效率不一定就是最高的,你对xpath掌握得越好,查询效率越好。
1.示例用xml文件,kk.xml
<?xml version = "1.0" encoding="GB2312" ?>
<联系人列表>
<联系人>
<姓名>张三</姓名>
<ID>001</ID>
<公司>A公司</公司>
<EMAIL>zhang@aaa.com</EMAIL>
<电话 类型="公司">(010)62345678</电话>
<电话 类型="家庭">(010)88888888</电话>
<地址>
<街道>五街1234号</街道>
<城市>北京市</城市>
<省份>北京</省份>
</地址>
</联系人>
<联系人>
<姓名>李四</姓名>
<ID>002</ID>
<公司>B公司</公司>
<EMAIL>li@bbb.org</EMAIL>
<电话 类型="公司">(021)87654321</电话>
<地址>
<街道>南京路9876号</街道>
<城市>上海</城市>
<省份>上海</省份>
</地址>
</联系人>
</联系人列表>
2.为了找到张三的家庭的电话号码,使用下列代码段
package test;
import java.util.List;
import java.net.URL;
import org.jdom.*;
import org.jdom.xpath.*;
import org.jdom.input.*;
import java.io.*;
import java.util.*;
public class Test{
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("kk.xml");
Element root = doc.getRootElement();
XPath xpath = XPath.newInstance("//电话[../姓名='张三'][@类型='家庭']");
List list = xpath.selectNodes(root);
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element item = (Element) iter.next();
System.err.println(item.getText());
}
}
输出结果正是我们想要的:(010)88888888.怎么样,很方便吧:)。
8过呢,我这个表达式效率不一定就是最高的,你对xpath掌握得越好,查询效率越好。
发表评论
-
XSTL接触
2011-04-27 15:39 2801XSTL接触 07月 11th, 2006 by 城市刀客 ... -
unknown protocol: c 解决方法,致命错误:“无法编译样式表”
2010-11-26 10:03 4612在使用XSLTransformer解析xml样式表,出现 u ... -
模板存储和解析。
2010-11-16 16:41 1178表单建模或者权限页面显示原理基本使用模板存储和解析 采用XML ... -
xml To html
2010-10-11 15:34 1192import java.io.*; import java.u ... -
(四)XPath 实例
2010-10-11 14:10 1354XPath 实例 Previous Page Next Pag ... -
(三)XPath Axes(坐标轴)
2010-10-11 13:53 1131XML 实例文档 我们将在 ... -
(二)XPath 语法
2010-10-11 13:41 911XPath 使用路径表达式来选取 XML 文档中的节点或节点集 ... -
XPath 术语(一)
2010-10-11 13:40 954XPath 术语 节点(Node) ... -
XSLT中用normalize-space函数来清除元素的前后空格
2010-10-11 13:30 1888XSLT中用normalize-space函数来清除元素的前后 ... -
java编写xsl转换器(xslt)把xml文件转换为html文件2
2010-10-11 10:41 1604//Prints formatted representati ... -
xsl:attribute
2010-10-11 09:26 2748xsl:attribute 创建一个属性节点和追加节点到输出节 ... -
XSLT - 客户端
2010-10-11 09:14 866如果您的浏览器支持 XSLT,那么在浏览器中它可被用来将文档转 ... -
XSLT <xsl:apply-templates> 元素
2010-10-11 09:10 1262<xsl:apply-templates> 元素可 ... -
XSLT <xsl:choose> 元素
2010-10-11 09:05 1190XSLT <xsl:choose> 元素 Prev ... -
XSLT <xsl:if> 元素
2010-10-11 09:04 1215XSLT <xsl:if> 元素 Prev ... -
XSLT <xsl:sort> 元素
2010-10-11 09:02 1741XSLT <xsl:sort> 元素 Previo ... -
XSLT <xsl:for-each> 元素
2010-10-11 09:02 1550XSLT <xsl:for-each> 元素 Pr ... -
XSLT <xsl:value-of> 元素
2010-10-11 09:01 1140XSLT <xsl:value-of> 元素 Pr ... -
XSLT 元素 (一)
2010-10-08 15:09 961XSLT 元素 XSL 样式表由 ... -
java编写xsl转换器(xslt)把xml文件转换为html文件
2010-10-08 14:32 4469package xslt; import java.io ...
相关推荐
xpath读取XML节点 用jdom包
JDOM、Dom4j操作xml文档 创建xml xpath query xml元素,完成xml的创建、节点的创建、修改、遍历,xpath的遍历xml节点元素
在测试中,我们使用了 JDOM 解析器来实现 JDOM 解析,结果显示,JDOM 解析的速度较快,特别是在大型 XML 文件时。 四、 XPath XPath 是一种基于路径的 XML 解析技术,它可以根据路径来定位 XML 文档中的元素。...
JsoupXPath的节点对象JXNode不仅可以获取标签节点,还可以获取属性节点 HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档。...
使用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用 navigation APIs 访问所需的树节点来完成任务。 2. SAX(Simple API for XML) SAX 是一种基于事件的模型,它在解析 XML 文档的时候...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。...XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 两个jar包一般情况下是一起用的。
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...