Dom4j工具解析XML
来源:互联网 发布:3des算法的c语言实现 编辑:程序博客网 时间:2024/05/21 22:58
Dom4j非官方工具,不在jdk中
使用步骤: 1)导入dom4j的核心包。 dom4j-1.6.1.jar 2)编写Dom4j读取xml文件代码
Dom4j提供的xml解析器对象
public static void main(String[] args) { try { //1.创建一个xml解析器对象 SAXReader reader = new SAXReader(); //2.读取xml文档,返回Document对象 Document doc = reader.read(new File("./src/contact.xml")); System.out.println(doc); } catch (DocumentException e) { e.printStackTrace(); throw new RuntimeException(e); } }
//得到节点信息 @Test public void test1() throws Exception { //读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document document = reader.read(new File("XmlDemo.xml")); //nodeIterator:得到当前节点下的所有节点对象 Iterator<Node> it = document.nodeIterator(); while (it.hasNext()) { //Node node =(Node) it.next(); Node node = it.next(); //判断其下面是否有子节点 //只有标签节点才会有子节点(节点、标签、属性、文本) //判断当前节点是否是标签节点 if(node instanceof Element){ Element element = (Element) node; Iterator<Node> it2 = element.nodeIterator(); while(it2.hasNext()){ Node n2 = it2.next(); System.out.println(n2.getName()); } } } }
/* * 遍历xml文档的所有节点 */ @Test public void test2() throws Exception{ //读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("XmlDemo.xml")); //得到根标签 Element rootElement = doc.getRootElement(); getChildNodes(rootElement); } private void getChildNodes(Element element){ System.out.println(element.getName()); //得到子节点 Iterator<Node> it = element.nodeIterator(); while(it.hasNext()){ Node node = it.next(); //判断是否是标签节点 if(node instanceof Element){ Element el = (Element)node; getChildNodes(el); } } }
/* * 获取属性 */ @Test public void test4() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("XmlDemo.xml")); //获取属性:(先获的属性所在的标签对象,然后才能获取属性) //1.得到标签对象 Element contactElem = doc.getRootElement().element("book"); //2.得到属性 //2.1 得到指定名称的属性值 /* String idValue = contactElem.attributeValue("id"); System.out.println(idValue); */ //2.2 得到指定属性名称的属性对象 /*Attribute idAttr = contactElem.attribute("id"); //getName: 属性名称 getValue:属性值 System.out.println(idAttr.getName() +"=" + idAttr.getValue());*/ //2.3 得到所有属性对象,返回LIst集合 /*List<Attribute> list = contactElem.attributes(); //遍历属性 for (Attribute attr : list) { System.out.println(attr.getName()+"="+attr.getValue()); }*/ //2.4 得到所有属性对象,返回迭代器 Iterator<Attribute> it = contactElem.attributeIterator(); while(it.hasNext()){ Attribute attr = it.next(); System.out.println(attr.getName()+"="+attr.getValue()); } }
/* * 获取文本 */ @Test public void test5() throws Exception{ //1.读取xml文档,返回Document对象 SAXReader reader = new SAXReader(); Document doc = reader.read(new File("XmlDemo.xml")); /* * 注意: 空格和换行也是xml的内容 */ String content = doc.getRootElement().getText(); System.out.println(content); //获取文本(先获取标签,再获取标签上的文本) Element nameELem = doc.getRootElement().element("book").element("title"); //得到文本 String text = nameELem.getText(); System.out.println(text); //得到指定子标签名的文本内容 String text2 = doc.getRootElement().element("book").elementText("author"); System.out.println(text2); }
常用方法:
节点: Iterator Element.nodeIterator(); //获取当前标签节点下的所有子节点 标签: Element Document.getRootElement(); //获取xml文档的根标签 Element ELement.element("标签名") //指定名称的第一个子标签 List<Element> Element.elements(); //获取所有子标签 属性: String Element.attributeValue("属性名") //获取指定名称的属性值 Attribute Element.attribute("属性名");//获取指定名称的属性对象 Attribute.getName() //获取属性名称 Attibute.getValue() //获取属性值 List<Attribute> Element.attributes(); //获取所有属性对象 Iterator<Attribute> Element.attibuteIterator(); //获取所有属性对象 文本: Element.getText(); //获取当前标签的文本获取当前标签的指定名称的子标签的文本内容
0 0
- Dom4j工具解析XML
- 采用dom4j解析xml工具
- 采用dom4j解析xml工具
- dom4j-----解析xml工具类
- Java -- XML解析工具dom4j
- Xml编程---Dom4j解析工具
- dom4j解析xml(含工具类)
- dom4j解析Xml文件工具类
- xml之DOM方式解析,DOM4J工具解析原理
- 网络爬虫--数据处理,jsoup工具解析html,dom4j解析xml
- java中dom4j解析xml生成xml文档,dom4j工具压缩包原代码
- Java XML解析工具 dom4j介绍及使用实例
- Java XML解析工具 dom4j介绍及使用实例
- Java XML解析工具 dom4j介绍及使用实例
- Java XML解析工具 dom4j介绍及使用实例
- 关于Dom4j解析XML文件,外带上一个简单工具
- java解析xml文件的开源工具 — dom4j
- Java XML解析工具 dom4j介绍及使用实例
- MySQL自定义函数
- 大数据---hadoop集群搭建
- 手机信息制作
- JAVA解析JSON数据
- Andriod 内存泄露问题的整理
- Dom4j工具解析XML
- iOS 集成Protobuf,转换proto文件
- 如何解决ajax跨域问题(转)
- 3.4. JVM Agent
- javaFX 子线程更新主线程UI
- 筋斗云接口编程 / 子表对象
- 乘法逆元的作用
- [黑科技] WPS通过VB宏函数实现自编号功能
- 机器学习数据集