首页 技术 正文
技术 2022年11月12日
0 收藏 643 点赞 3,570 浏览 1544 个字

使用Document Object Model, DOM解析XML文档

也可参考我的新浪博客:http://blog.sina.com.cn/s/blog_43ac5543010190w3.html

测试代码如下

package main;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;public class Test {public static void main(String[] args) throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
factory.setIgnoringElementContentWhitespace(true);
factory.setIgnoringComments(true);
factory.setValidating(true);Document xmlDoc = builder.parse("C:/test.xml");
Element root = xmlDoc.getDocumentElement();listNodes(root, "");
}public static void listNodes(Node node, String space) {
Element element = null;
// if (node instanceof Element) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
element = (Element) node;
Text textNode = (Text) element.getFirstChild();String tagName = element.getTagName();
String tagValue = textNode.getData().trim();
System.out.print(space + tagName);
if (!"".equals(tagValue)) {
System.out.print("=" + tagValue);
}NamedNodeMap attributes = element.getAttributes();
for (int i = 0; i < attributes.getLength(); i++) {
Node attribute = attributes.item(i);
String name = attribute.getNodeName();
String value = attribute.getNodeValue();
System.out.print(" " + name + ":" + value);
}
System.out.println();
}NodeList list = node.getChildNodes();
int childNodesLength = list.getLength();
if (childNodesLength > 0) {
for (int i = 0; i < childNodesLength; i++) {
listNodes(list.item(i), space + " ");
}
}
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298