1.创建:
1.1直接代码创建:Document document = DocumentHelper.createDocument();
Element root = document.addElement("root"); ......其他的都这么来.
1.2使用string创建:String str = "<?xml version='1.0' encoding='UTF-8'?><root><book1 type='test'><name>javaWorld</name><price>123.0</price></book1></root>";
Document document = DocumentHelper.parseText(str); ......其他的和上面一样;
1.3使用存在的文档,利用SAXReader.read(new File("filePath"));创建document:
SAXReader sr = new SAXReader();
Document doc = sr.read(new File(filePath));
2.修改/保存:
OutputFormat outFmt=new OutputFormat(" ",true); //格式使用4个空格作为缩进字符串,元素之间添加新行
XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File("path")),outFmt);
xmlWriter.write(doc);
xmlWriter.close();
3.删除:remove(Element/Attribute);//注意,只有在父节点上移除,不能在祖先节点上移除;
4.查找:
4.1在document下查找元素: elementByID("str"); getParent();//很少用 getRootElement();//得到root元素,用的最多.
4.2在Element下查找元素,如在root下查找:root.element("str");//常用
4.3在Element下查找属性:如在root下查找属性为str的值:root.attributeValue("str"); //不用get开头--------记忆:获取Element和Attribute都不用 get开头;
4.4在Element下查找文本值:getText();
4.5相当于补充的,这个需要使用jaxen.jar,直接通过路径来获取document中的元素元素,不用一步一步来搞了.如下:
Element book1 = (Element) document.selectSingleNode("/root/book1");
4.6有时候需要遍历元素下的所有元素使用----elementIterator(),如遍历root下的所有元素:Iterator iterator=root.elementIterator();
-->while(iterator.hasNext()) {
Element e = (Element) iterator.next(); //注意游标是从所有元素的最前面开始的,也就是说他所在的位置没有元素.
}