1. 环境
jdk1.6
2. 代码
public class XmlException extends RuntimeException {
private static final long serialVersionUID = 1L;
public XmlException(String message){
super(message);
}
public XmlException(String message, Throwable cause){
super(message, cause);
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
public class DefaultNamespaceContext implements NamespaceContext {
private Map<String, String> namespaceMap = new HashMap<String, String>();
public DefaultNamespaceContext(Map<String, String> namespaceMap){
this.namespaceMap = namespaceMap;
}
public String getNamespaceURI(String prefix) {
System.out.println("prefix = " + prefix);
if (prefix == null)
throw new NullPointerException("Null prefix");
else if ("xml".equals(prefix))
return XMLConstants.XML_NS_URI;
else if(namespaceMap.containsKey(prefix)){
return namespaceMap.get(prefix);
}
return XMLConstants.NULL_NS_URI;
}
public String getPrefix(String namespaceURI) {
System.out.println("namespaceURI = " + namespaceURI);
throw new UnsupportedOperationException();
}
public Iterator getPrefixes(String namespaceURI) {
System.out.println("namespaceURI = " + namespaceURI);
throw new UnsupportedOperationException();
}
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Map;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
/**
* 实用XPATH解析xml的工具
* xpath表达式用法: /图书馆/书/@名称 , /configuration/property[name = 'host']/value
*
* @author yuan
*
*/
public class XpathTool {
private String xmlFile;
private String encoding;
public XpathTool(final String xmlFile){
this(xmlFile, "UTF-8");
}
public XpathTool(final String xmlFile, final String encoding){
this.xmlFile = xmlFile;
this.encoding = encoding;
}
public String compute(String expression, Map<String, String> namespaceMap) throws XmlException{
String value = "";
InputStreamReader isr = null;
try {
isr = new InputStreamReader(XpathTool.class.getResourceAsStream(xmlFile),encoding);
InputSource source = new InputSource(isr);
XPath xpath = XPathFactory.newInstance().newXPath();
if(namespaceMap != null){
xpath.setNamespaceContext(new DefaultNamespaceContext(namespaceMap));
System.out.println("设置名称空间...");
}
value = xpath.evaluate(expression, source);
} catch (UnsupportedEncodingException e) {
throw new XmlException(e.getMessage(), e);
} catch (XPathExpressionException e) {
throw new XmlException(e.getMessage(), e);
} finally{
if(isr!=null){
try {
isr.close();
} catch (IOException e) {
throw new XmlException(e.getMessage(), e);
}
}//if
}
return value;
}
}
3. 使用的xml文件test.xml
<?xml version="1.0"?>
<configuration>
<property>
<name a="1">host</name>
<value>http://192.168.3.249</value>
<description>系统主机地址</description>
</property>
<property>
<name>login</name>
<value>/page/Default.aspx</value>
<description>登陆页面</description>
</property>
</configuration>
4. 用法
XpathTool xpath = new XpathTool("d:/test.xml");
System.out.println(xpath.compute("/configuration/property[name = 'host']/value", null));
分享到:
相关推荐
对于JDK 1.6,开发者需要掌握如何使用Java类库,如java.io和java.util,以及如何利用JDBC(Java Database Connectivity)连接和操作MySQL数据库。对于jQuery,理解选择器语法、事件处理和动画效果的创建是基础。同时...
7. **XPath和XSLT支持**:JDK 1.6包含完整的XML处理能力,支持XPath查询和XSLT转换,便于处理XML数据。 8. **增强的安全性**:加强了对SSL/TLS协议的支持,提升了加密算法的安全性,并提供了更强的权限管理机制。 ...
8. **XPath API**:JAXP(Java API for XML Processing)在JDK 6中增加了对XPath 1.0的支持,使得在Java代码中处理XML文档更加便捷。 9. **JDBC 4.0**:带来了自动连接管理、增强的数据库元数据查询和新的`...
API(Application Programming Interface)是JDK的核心部分,提供了丰富的类库供开发者使用,以实现各种功能。JDK1.6 API中文版是这个版本的API文档的中文翻译,对于中国开发者来说,这是一个极其有用的参考资料,...
5. **开发工具**:涵盖了JDK自带的开发工具,如javac编译器、jar打包工具、javadoc文档生成器等,以及如何使用这些工具进行开发。 6. **部署和安全**:讨论了Java应用的部署策略、网络应用的安全控制,以及如何使用...
首先,我们需要了解基础类库Commons Lang,它提供了对JDK中java.lang包的补充,提供了各种各样的Util工具类,简化了很多常用的编程操作。例如,它提供了一套用于字符串处理的工具方法,包括判断字符串是否为空、去除...
6. **XPath和XML处理**:JDK 1.6改进了XML处理,包括JAXB(Java Architecture for XML Binding)和JAXP(Java API for XML Processing),使得XML数据绑定和解析更加方便。 7. **增强的安全性**:1.6版本加强了Java...
6. **XPath API**:提供了对XML文档查询的API,使得开发者可以更方便地处理XML数据。 7. **安全管理**:增强了Java的安全模型,提供更好的网络和本地文件系统保护,防止恶意代码的执行。 8. **国际化和本地化**:...
6. **XPath支持**:`javax.xml.xpath`包提供了XPath语言的API,使得在XML文档中查找、导航和操作数据变得更加便捷。 7. **XML解析器**:JDK 1.6内置了更强大的XML解析器,如SAX和DOM解析器,以及StAX(Streaming ...
- **XML处理**:更新了XPath和XSLT的实现,提高了处理XML文档的效率。 - **并发工具**:添加了ConcurrentHashMap等并发工具类,简化了多线程编程。 文件名`jdk-7u80-windows-x64.exe`代表的是JDK 1.7的第80次更新...
7. **XPath API**:对XML处理提供了更强大的XPath API,方便开发者进行XML文档的查找和操作。 8. **脚本语言支持**:JDK6引入了JSR 223,允许Java平台集成其他脚本语言,如JavaScript、Groovy等。 **解压和配置步骤...
例如,JDK自带的`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`可用于构建和操作DOM树。 2. SAX解析: SAX解析器不将整个文档加载到内存,而是通过事件处理器接口(如`ContentHandler`)...
- **XPath和XSLT支持**:JAXP(Java API for XML Processing)增强了XPath和XSLT处理,方便XML数据的查询和转换。 - **JMX增强**:提高了Java Management Extensions的易用性和功能,便于管理和监控Java应用。 2....
- **XPath和XSLT**:增强了XML处理能力,支持XPath 1.0和XSLT 1.0。 JDK 6的安装和配置是开发Java应用的基础,对于学习Java编程或者部署Java服务的Linux用户来说至关重要。了解这些步骤和相关特性,可以帮助开发者...
《Java开发手册API文档(JDK1.8中文版)》是Java开发者的重要参考资料,它详细阐述了JDK1.8版本中的各种类库、接口、方法和异常等核心概念,帮助开发者理解和运用Java编程语言进行后端开发。文档内容涵盖广泛,包括...
10. **XPath和XSLT**:JDK6集成了对XML处理的API,如XPath用于查询XML文档,XSLT用于转换XML文档。 11. **异常链**:允许一个异常对象包含另一个异常作为其原因,这样可以在捕获和处理异常时更好地追踪问题的源头。...
9. **XPath和XSLT支持**:在Java中处理XML文档变得更加方便。 10. **改进的调试和性能分析工具**:如JConsole和VisualVM,帮助开发者监控和优化应用性能。 在使用JDK6时,需要注意的是,由于它是一个较旧的版本,...
JDK 6的解压版,如"jdk1.6.0_35",是为了方便那些不希望或者无法进行安装程序操作的用户准备的,可以直接在指定目录下解压并使用。 **一、JDK 6的主要特性** 1. **增强的Swing组件**:JDK 6对Swing组件进行了大量...
- **改进的XML处理**:增强了Java API for XML Processing (JAXP),支持XPath 2.0和XSLT 2.0,使XML处理能力更加强大。 - **Scripting API**:JSR 223引入了脚本引擎,使得Java平台可以嵌入并执行各种脚本语言,如...
dom4j提供了一种面向对象的API,使得操作XML更加方便,同时也支持XPath查询。相比DOM,dom4j的内存占用更低,性能更好,同时提供丰富的功能,是很多开发者的选择。 4. **dom.jar**: 这里的dom.jar通常指的是Java...