javaweb学习总结十(xml解析)

一:XML解析技术

一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高。

javaweb学习总结十(xml解析<SAX以及DOM方式>)

1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包

javaweb学习总结十(xml解析<SAX以及DOM方式>)

javaweb学习总结十(xml解析<SAX以及DOM方式>)

2:jaxp解析xml代码如下

a:获取document文档树对象

 @Test
// 获取document对象
public void test1() throws Exception {
// 1:获取解析工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 2:获取解析对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 3:获取document对象
Document doc = builder.parse("xml/books.xml");
System.out.println(doc);
}
     // 获取document对象方法
private Document getDoc() throws Exception {
// 1:获取解析工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 2:获取解析对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 3:获取document对象
Document doc = builder.parse("xml/books.xml");
return doc;
}

b:获取元素节点

 @Test
// 获取xml中的元素内容
public void test2() throws Exception {
Document doc = getDoc();
NodeList lists = doc.getElementsByTagName("name");
Node node = lists.item(0);
System.out.println("名称:" + node.getNodeName() + "\n内容:"
+ node.getTextContent());
}

c:递归遍历xml文件中所有节点

 @Test
// 遍历所有的节点 递归
public void test3() throws Exception {
Document doc = getDoc();
Node node = doc.getElementsByTagName("bookstore").item(0);
list(node);
} private void list(Node node) {
if (node instanceof Element) {
System.out.println(node.getNodeName());
}
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
list(list.item(i));
}
}

d:获取元素属性

 @Test
// 获取元素属性
public void test4() throws Exception {
Document doc = getDoc();
Element element = (Element) doc.getElementsByTagName("book").item(0);
String name = element.getAttribute("name");
System.out.println("name:" + name);
}

如果Node节点对象的方法比较少是,可以使用子类Element的方法。

上一篇:AppCan做的图片上传代码


下一篇:MVC 4 网页版发送 邮件的配置问题