xml
来源:互联网 发布:矩阵乘法计算公式 编辑:程序博客网 时间:2024/04/30 17:33
XML解析工具
DOM解析原理:
1)JAXP (oracle-Sun公司官方)
2)JDOM工具(非官方)
3)Dom4J工具(非官方)
三大框架(默认读取xml的工具就是Dom4j)
…….
SAX解析原理:
1)Sax解析工具(oracle-sun公司官方)
DOM解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。
节点:
Iterator Element.nodeIterator(); //获取当前标签节点下的所有子节点
标签: Element Document.getRootElement(); //获取xml文档的根标签 Element ELement.element("标签名") //指定名称的第一个子标签 Iterator<Element> Element.elementIterator("标签名");// 指定名称的所有子标签 List<Element> Element.elements(); //获取所有子标签 属性: String Element.attributeValue("属性名") //获取指定名称的属性值 Attribute Element.attribute("属性名");//获取指定名称的属性对象 Attribute.getName() //获取属性名称 Attibute.getValue() //获取属性值 List<Attribute> Element.attributes(); //获取所有属性对象 Iterator<Attribute> Element.attibuteIterator(); //获取所有属性对象 文本: Element.getText(); //获取当前标签的文本 Element.elementText("标签名") //获取当前标签的指定名称的子标签的文本内容
输出xml
public class Demo3 { @Test public void test1() throws DocumentException{ SAXReader reader = new SAXReader(); Document doc = reader.read("./src/contact.xml"); StringBuffer sb=new StringBuffer(); Element rootElem=doc.getRootElement();// System.out.println(rootElem.getName()); getChildNodes(rootElem,sb); System.out.println(sb); } private void getChildNodes(Element elem,StringBuffer sb){ sb.append("<"+elem.getName()); Iterator<Attribute> it=elem.attributeIterator(); if(it!=null){ if(it.hasNext()){ Attribute a=it.next(); sb.append(" "+a.getName()+" =\""+a.getValue()+"\""); } } sb.append(">"); Iterator<Node> it2 = elem.nodeIterator(); while(it2.hasNext()){ Node node=it2.next(); if(node instanceof Element){ Element el=(Element)node; getChildNodes(el,sb); } if(node instanceof Text){ Text t=(Text)node; sb.append(t.getText()); } } sb.append("</"+elem.getName()+">"); }}
Dom4j修改xml文档
写出内容到xml文档
XMLWriter writer = new XMLWriter(OutputStream, OutputForamt)
wirter.write(Document);
修改xml文档的API
增加: DocumentHelper.createDocument() 增加文档 addElement("名称") 增加标签 addAttribute("名称",“值”) 增加属性 修改: Attribute.setValue("值") 修改属性值 Element.addAtribute("同名的属性名","值") 修改同名的属性值 Element.setText("内容") 修改文本内容 删除 Element.detach(); 删除标签 Attribute.detach(); 删除属性
在dom4j中如何使用xPath技术
1)导入xPath支持jar包 。 jaxen-1.1-beta-6.jar
2)使用xpath方法
List selectNodes(“xpath表达式”); 查询多个节点对象
Node selectSingleNode(“xpath表达式”); 查询一个节点对象
xPath语法
/ 绝对路径 表示从xml的根位置开始或子元素(一个层次结构) // 相对路径 表示不分任何层次结构的选择元素。 * 通配符 表示匹配所有元素 [] 条件 表示选择什么条件下的元素 @ 属性 表示选择属性节点 and 关系 表示条件的与关系(等价于&&) text() 文本 表示选择文本内容
- XML
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- XML
- xml
- xml
- XML
- XML
- xml
- xml
- xml
- XML
- XML
- uparse展示视频时与bootstrap导航条冲突?
- Web图表方案选择
- ./file 和 . ./file 的区别
- 个人完成案例之乐学成语(测试篇)
- Leetcode 153, 154 Find Minimum in Rotated Sorted Array I, II
- xml
- [swift学习之十六]RunTime练习一
- java中的Lock和tryLock方法的详解
- Web开发之初体验
- mybatis配置文件
- 理解 Cinder 架构 - 每天5分钟玩转 OpenStack(45)
- 在锁中使用多条件Condition
- Java千百问_03基础语法(016)_main方法是什么
- Bulls and Cows