黑马程序员技术交流社区
标题:
DOM4J
[打印本页]
作者:
hejinzhong
时间:
2014-8-23 04:12
标题:
DOM4J
本帖最后由 hejinzhong 于 2014-8-23 21:50 编辑
package studentexam;
import java.io.*;
import java.util.List;
import org.dom4j.*
import org.dom4j.io.*;
import org.junit.*;
public class DOM4j_utils {
Document dm;
@Before
public void setUp() {
SAXReader sr = new SAXReader();
try {
dm = sr.read("src/book.xml");
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
// 获取某个节点的内容
public void Test1() {
// 获取XML的根节点
Element root = dm.getRootElement();
// 获取所有的书名
@SuppressWarnings("unchecked")
List<Element> list = root.elements();
// 这里遍历验证Elements获取的仅仅是其子节点
// for (Element element : list) {
// System.out.println(element.getName());
// }
Element bNode = list.get(1);
Element aNode = bNode.element("作者");
System.out.println(aNode.getText());
}
// 遍历所有元素节点
@Test
public void Test2() {
// 获取根节点
Element root = dm.getRootElement();
// 递归遍历
treeWalk(root);
}
private void treeWalk(Element root) {
for (int i = 0; i < root.nodeCount(); i++) {
Node node = root.node(i);
if (node instanceof Element) {
System.out.println(node.getName());
treeWalk((Element) node);
}
}
}
// 修改某个元素节点的主体内容(修改价格)
@Test
public void Test3() {
Element root = dm.getRootElement();
// 下面是后去到售价节点,并赋值
@SuppressWarnings("unchecked")
List<Element> list = root.elements();
Element bNode = list.get(1);
Element sNode = bNode.element("售价");
sNode.setText("80");
// Element sNode = (Element) root.elements().get(1);
myXMLWriter();
}
// 向指定元素节点中增加子元素节点
@Test
public void Test4() {
Element root = dm.getRootElement();
@SuppressWarnings("unchecked")
List<Element> list = root.elements();
Element bNode = list.get(0);
Element sNode = bNode.element("售价");
sNode.addElement("内部价").setText("50");
myXMLWriter();
}
// 向指定元素节点上增加同级元素节点
@Test
public void Test5() {
Element root = dm.getRootElement();
@SuppressWarnings("unchecked")
List<Element> list = root.elements();
Element bNode = list.get(0);
bNode.addElement("批发价").setText("80");
myXMLWriter();
}
// 删除指定元素节点
@Test
public void Test6() {
Element root = dm.getRootElement();
@SuppressWarnings("unchecked")
List<Element> list = root.elements();
Element bNode = list.get(0);
Element sNode = bNode.element("售价");
sNode.remove(sNode.element("内部价"));
myXMLWriter();
}
// 操作XML文件属性
@Test
public void Test7() {
Element root = dm.getRootElement();
Element bNode = (Element) root.elements().get(0);
Element bnNode = bNode.element("书名");
bnNode.addAttribute("ISBN", "黑马陈序员");
myXMLWriter();
}
public void myXMLWriter() {
try {
XMLWriter xw = new XMLWriter(new FileOutputStream("src/book.xml"),
OutputFormat.createPrettyPrint());
xw.write(dm);
xw.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
复制代码
作者:
天黑偷牛
时间:
2014-8-26 12:23
总是直接copy代码不太好吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2