当我们解析xml的时候,如果该xml没有带命名空间,那么很好解析,直接用dom4j的selectNodes(XPath表达式)既可以了。但是如果命名空间那么则会返回空。下面为大家介绍三种方法来解决:
第一种:
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
<list-property name="cssStyleSheets">
<structure>
<property name="fileName">D: eport.css</property>
</structure>
</list-property>
</report>
<list-property name="cssStyleSheets">
<structure>
<property name="fileName">D: eport.css</property>
</structure>
</list-property>
</report>
第一个方案.设置你的xpath的命名空间setNamespaceURI
public class TransferXML {
public static void main(String[] args) throws Exception//design:list-property");//填写XPath表达式
x.setNamespaceURIs(map);//设置命名空间
List nodelist = x.selectNodes(document);//取出符合规定的集合
System.out.println(nodelist.size());
}
}
public static void main(String[] args) throws Exception//design:list-property");//填写XPath表达式
x.setNamespaceURIs(map);//设置命名空间
List nodelist = x.selectNodes(document);//取出符合规定的集合
System.out.println(nodelist.size());
}
}
第二种:设置你的DocumentFactory()的命名空间 setXPathNamespaceURIs
public class TransferXML {
public static void main(String[] args) throws Exception{
Map map = new HashMap();
map.put("design","http://www.eclipse.org/birt/2005/design");//填充map
SAXReader saxReader = new SAXReader();
File file = new File("D:\test.xml");
saxReader.getDocumentFactory().setXPathNamespaceURIs(map);//设置命名空间
Document document = saxReader.read(file);
List tmp = document.selectNodes("//design:list-property");//用XPath选取节点
System.out.println(tmp.size());
}
}
public static void main(String[] args) throws Exception{
Map map = new HashMap();
map.put("design","http://www.eclipse.org/birt/2005/design");//填充map
SAXReader saxReader = new SAXReader();
File file = new File("D:\test.xml");
saxReader.getDocumentFactory().setXPathNamespaceURIs(map);//设置命名空间
Document document = saxReader.read(file);
List tmp = document.selectNodes("//design:list-property");//用XPath选取节点
System.out.println(tmp.size());
}
}
详细请参考:http://blog.sina.com.cn/s/blog_4bf2e5550100sbb7.html
相关推荐
NULL 博文链接:https://qiaokeli.iteye.com/blog/1790138
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
NULL 博文链接:https://superich2008.iteye.com/blog/1750287
做Java课程设计有用到的例子,是个一看就能上手的例子。
三、使用dom4j解析xml文件 5 1. 构建dom4j树 5 2. 获取节点 5 3. 获取属性 6 4. 使用XPath获取节点和属性 6 四、使用dom4j修改xml文件 7 五、常用方法 8 1.Element元素API 8 2. Attribute属性API 8 2. 字符串转化 8...
通过 利用 java 以及 dom4j 来进行XML 文件的 生成与 解析操作。代码简单易懂。
由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便, 结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作的几种主要形式 第一种形式 /a/b/c: 表示一层...
第4章 数据建模与XML 4.1 信息建模 4.1.1 静态模型和动态模型 4.1.2 文档和数据 4.1.3 从何处开始 4.1.4 静态信息模型 4.1.5 动态建模:对数据进行哪些处理? 4.2 设计XML文档 4.2.1 XML的两种角色 4.2.2 ...
1.6.6 命名空间和模式 1.6.7 链接和查询 1.6.8 转换XML 1.6.9 XML和数据库 1.6.10 服务器到服务器 1.6.11 电子商务与XML 1.6.12 使用样式 1.6.13 无线应用程序协议和WML 1.7 XML的应用程序举例 1.8 小结 ...
1.6.6 命名空间和模式 1.6.7 链接和查询 1.6.8 转换XML 1.6.9 XML和数据库 1.6.10 服务器到服务器 1.6.11 电子商务与XML 1.6.12 使用样式 1.6.13 无线应用程序协议和WML 1.7 XML的应用程序举例 1.8 小结 ...
1.6.6 命名空间和模式 1.6.7 链接和查询 1.6.8 转换XML 1.6.9 XML和数据库 1.6.10 服务器到服务器 1.6.11 电子商务与XML 1.6.12 使用样式 1.6.13 无线应用程序协议和WML 1.7 XML的应用程序举例 1.8 小结 ...
DTD不支持命名空间,解析器无法测试命名空间。 1、作用: 解决XML文档中命名冲突的问题,即将 XML文档与引用URI标识的名域相结合,来 限定其中的元素和属性名。 示例: <?xml version="1.0" encoding="UTF-8" ...
1.6.6 命名空间和模式 14 1.6.7 链接和查询 15 1.6.8 转换XML 15 1.6.9 XML和数据库 16 1.6.10 服务器到服务器 16 1.6.11 电子商务与XML 17 1.6.12 使用样式 18 1.6.13 无线应用协议和WML 18 1.7 XML的应用程序举例 ...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...
在.NET中使用XML <br>3.1 XML如何适合.NET 3.1.1 XML 3.1.2 文档对象模型(DOM) 3.1.3 命名空间 3.1.4 DTD和XML Schema 3.1.5 XPath 3.1.6 XSLT 3.2 .NET Framework使用XML 3.2.1 配置...
xml的入门教程,适合初学者 1 XML 简介 2 XML 的用途 3 XML 树结构 4 XML 语法规则 5 XML 元素 ...18 XML 命名空间(XML Namespaces) 19 XML CDATA 20 XML 编码 21 XML DOM 高级 22 XML Don't
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。...
3.2.4 用dom解析xml文档实例 53 3.3 使用sax解析xml文档 65 3.3.1 sax的处理机制 66 3.3.2 配置sax解析器 69 3.3.3 sax解析器工厂 70 3.3.4 sax的异常类 71 3.3.5 errorhandler接口 73 3.3.6 使用sax解析xml...