dom4j解析xml
2015-11-23 16:06
435 查看
解析xml文档
获取document文档对象
获取复杂的xml文档
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jParseXmlDemo { public void parseXml01(){ try { //将src下的xml文件转换为输入流(两种方法导入) // InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; //创建SAXReader对象,读取xml SAXReader saxReader = new SAXReader() ; Document document = saxReader.read(inputStream) ; Element rootElement = document.getRootElement() ; System.out.println("根节点名称: " + rootElement.getName()); System.out.println("根节点有多少属性: " + rootElement.attributeCount()); System.out.println("根节点id属性的值: " + rootElement.attributeValue("id")); //如果xml里面有换行,显示出来的文本也会换行 System.out.println("根节点内文本: " + rootElement.getText()); //去掉的是标签与标签之间的tab键和换行符等等,不是内容前后的空格 System.out.println("根节点内文本1: " + rootElement.getTextTrim()); //返回当前节点递归所有子节点的文本信息。 System.out.println("根节点子节点文本内容: " + rootElement.getStringValue()); Element element = rootElement.element("message") ; if(element!=null){ System.out.println("子节点的文本: " + element.getText()); } //修改节点名称和文本内容 rootElement.setName("root") ; System.out.println("修改后的节点名称: " + rootElement.getName()); rootElement.setText("text") ; System.out.println("根节点修改之后的文本: " + rootElement.getText()); }catch(DocumentException e){ e.printStackTrace() ; } } public static void main(String[] args) { Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; demo.parseXml01() ; } }
获取document文档对象
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jParseXmlDemo { public void parseXml01(){ try { //将src下的xml文件转换为输入流(两种方法导入) // InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; //创建SAXReader对象,读取xml SAXReader saxReader = new SAXReader() ; Document document = saxReader.read(inputStream) ; Element rootElement = document.getRootElement() ; Iterator<Element> it = rootElement.elements("body").iterator() ; while(it.hasNext()){ Element bodyElement = it.next() ; Element nameElement = bodyElement.element("name") ; System.out.println(nameElement.getName() + ":" + nameElement.getText()); Element sexElement = bodyElement.element("sex") ; System.out.println(sexElement.getName() + ":" + sexElement.getText()); Element addressElement = bodyElement.element("address") ; System.out.println(addressElement.getName() + ":" + addressElement.getText()); } }catch(DocumentException e){ e.printStackTrace() ; } } public static void main(String[] args) { Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; demo.parseXml01() ; } }
获取复杂的xml文档
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jParseXmlDemo { public void parseXml01(){ try { //将src下的xml文件转换为输入流(两种方法导入) // InputStream inputStream = new FileInputStream(new File("D:\\Workspaces\\MyEclipse 10\\Test\\src\\test.xml")) ; InputStream inputStream = this.getClass().getResourceAsStream("/test.xml") ; //创建SAXReader对象,读取xml SAXReader saxReader = new SAXReader() ; Document document = saxReader.read(inputStream) ; Element rootElement = document.getRootElement() ; if(rootElement.elements("chingcloud") != null){ @SuppressWarnings("unchecked") List<Element> elementList = rootElement.elements("chingcloud") ; for(Element element:elementList){ if(!element.getTextTrim().equals("")){ System.out.println("【1】" + element.getTextTrim()); }else{ if(element.attributeValue("id").equals("a")){ Element nameElement = element.element("name") ; System.out.println(" 【2】" + nameElement.getName() + ":" + nameElement.getText()); Element addressElement = element.element("address") ; System.out.println(" 【2】" + addressElement.getName() + ":" + addressElement.getText()); Element descriptElement = element.element("descript") ; System.out.println(" 【2】" + descriptElement.getName() + ":" + descriptElement.getText()); }else if(element.attributeValue("id").equals("b")){ Element countElement = element.element("count") ; System.out.println(" 【3】" + countElement.getName() + ":" + countElement.getText()); Element moneyElement = element.element("money") ; System.out.println(" 【3】" + moneyElement.getName() + ":" + moneyElement.getText()); @SuppressWarnings("unchecked") List<Element> subElements = element.elements("chingcloud") ; int len = subElements.size() ; for(int i=0;i<len;i++){ Element subElement = subElements.get(i) ; Element nameSubElement = subElement.element("name") ; System.out.println(" 【" + (i+4) + "】" + nameSubElement.getName() + ":" + nameSubElement.getText()) ; Element sexSubElement = subElement.element("sex") ; System.out.println(" 【" + (i+4) + "】" + sexSubElement.getName() + ":" + sexSubElement.getText()) ; Element ageSubElement = subElement.element("age") ; System.out.println(" 【" + (i+4) + "】" + ageSubElement.getName() + ":" + ageSubElement.getText()); } } } } } }catch(DocumentException e){ e.printStackTrace() ; } } public static void main(String[] args) { Dom4jParseXmlDemo demo = new Dom4jParseXmlDemo() ; demo.parseXml01() ; } }
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- C#针对xml基本操作及保存配置文件应用实例
- Ruby程序中创建和解析XML文件的方法
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#操作XML文件实例汇总
- SQL Server中的XML数据进行insert、update、delete
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- 关于SQLServer2005的学习笔记 XML的处理
- C#通过DataSet读写xml文件的方法
- C#实现基于XML配置MenuStrip菜单的方法
- php xml 入门学习资料
- Zend 输出产生XML解析错误