标签:ble nbsp on() sax w3c out mic 方法 microsoft
基本的解析
1. public Document parseDoc(String filePath) throws DocumentException {
2. return new SAXReader().read(filePath);
3. }
读取一个元素
1. public void getElement() throws DocumentException{
2.
3. Document document = parseDoc(path);
4. Element root = document.getRootElement();
5. List<Element> books = root.elements("书");
6. Element book2 = books.get(1);
7. Element author2 = book2.element("作者");
8. System.out.println(author2.getText());
9.
10. }
在元素末尾添加子元素
1. public void addElement() throws Exception{
2. Document document= parseDoc(path);
3. Element root = document.getRootElement();
4. Element book2 = (Element)root.elements("书").get(1);
5. book2.addElement("cat").setText("I am a cat");
6. writeBack(document, path);
7. }
在任意位置添加子元素
1. public void insertElement() throws Exception{
2. Document document = parseDoc(path);
3. Element root = document.getRootElement();
4. Element book2 = (Element)root.elements("书").get(1);
5. List<Element> list = book2.elements();
6. Element cat = DocumentHelper.createElement("cat2");
7. cat.setText("I am a cat too");
8. list.add(1, cat);
9. writeBack(document, path);
10. }
在任意位置添加,这回真的是任意位置了…dom4j并没有提供insertBefore这种方法,但是我们通过elements()方法拿到的一个list真的是个list…所以可以直接add进去.
删除一个元素
1. public void removeElement() throws Exception{
2. Document document = parseDoc(path);
3. Element root = document.getRootElement();
4. Element book2 = (Element)root.elements("书").get(1);
5. //Element cat = root.element("cat2");
6. Element cat = book2.element("cat2");
7. book2.remove(cat);
8. writeBack(document, path);
9.
10. }
elements()方法,只是查找当前元素的下一级的子元素,注意注释那一行,刚开始写错了,而且神奇的是这玩意儿没找到也不报错…
修改一个元素
1.public void changeElement() throws Exception{
2. Document document = parseDoc(path);
3. Element root = document.getRootElement();
4. Element book2 = (Element)root.elements("书").get(1);
5. Element author2 = book2.element("作者");
6.
7. author2.setText("西川结衣");
8. writeBack(document, path);
9. }
回写
1. public void writeBack(Document document,String filePath) throws Exception{
2. OutputFormat format = OutputFormat.createPrettyPrint();
3. format.setEncoding("UTF-8");
4. XMLWriter writer = new XMLWriter(new FileOutputStream(filePath), format);
5. writer.write(document);
6. writer.close();
7. }
XPATH是在XML中查找信息的一种语言,通过它可以很方便快捷精确的找到一个元素.
XPath中有七种节点: 元素,属性,文本,命名空间,处理指令,注释以及文档(根节点)
XML文档是被当作一个树对待的,文档节点也就是所谓的根节点. 其他的叫法都遵循树的原则.
表达式 | 描述 |
---|---|
nodeName | 选取此节点的所有子节点 |
/ | 从根节点开始匹配 |
// | 从匹配选择的当前节点选择,不考虑位置 |
. | 当前节点 |
.. | 当前节点的父节点 |
@ | 属性 |
比如
用来查找特定条件的节点,写在方括号里
比如:
可以使用| 来选取若干路径,比如
再复杂的就去看W3school吧…
dom4j是支持XPath的,需要导入jaxen包
仅可以使用的两个方法:
不多做解释.
标签:ble nbsp on() sax w3c out mic 方法 microsoft
原文地址:http://www.cnblogs.com/thecatcher/p/6220707.html