[Source Code]学习了一种比较经典的遍历XML文件的方法
2006-08-31 16:28
489 查看
[b]使用DOM:[/b]
package com.mycompany.xmltest;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.xml.sax.SAXException;
public class DOMParseXML {
public void scanXML(File thefile) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
Document doc = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
doc = db.parse(thefile);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element root = doc.getDocumentElement();
echoNode(root);
}
private void echoNode(Node node) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
System.out.println("This is an element: ");
System.out.println("Name: " + node.getNodeName() + "/n");
if (node.hasChildNodes()) {
NodeList nlist = node.getChildNodes();
for (int i = 0; i < nlist.getLength(); i++) {
echoNode(nlist.item(i));
}
}
if (node.hasAttributes()) {
NamedNodeMap namedNodeMap = node.getAttributes();
for (int i = 0; i < namedNodeMap.getLength(); i++) {
echoNode(namedNodeMap.item(i));
}
}
break;
case Node.ATTRIBUTE_NODE:
System.out.println("This is an attribute: ");
System.out.println("Name :" + node.getNodeName());
System.out.println("Value :" + node.getNodeValue() + "/n");
break;
case Node.TEXT_NODE:
System.out.println("This is a text: ");
System.out.println("Content: /" " + node.getNodeValue() + "/"/n");
break;
default:
System.out.println("### Node type: " + node.getNodeType() + "###");
System.out.println("Name: " + node.getNodeName());
System.out.println("Value: " + node.getNodeValue());
break;
}
}
public static void main(String[] args) {
DOMParseXML test = new DOMParseXML();
test.scanXML(new File("F://1.xml"));
}
}
使用Dom4j:
package com.mycompany.xmltest;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Dom4jParseXML {
public void scanXML(File thefile){
SAXReader saxReader = new SAXReader();
Document doc = null;
try {
doc = saxReader.read(thefile);
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
echo(root);
}
private void echo(Node node) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
System.out.println("############## This is an element: ###############");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName());
System.out.println("Xpath StringValue: " + node.getStringValue());
System.out.println("*********************************************");
Element ele = (Element) node;
if (ele.attributeCount() !=0 ) {
Iterator attrIt = ele.attributeIterator();
while (attrIt.hasNext()) {
echo((Node) attrIt.next());
}
}
if (ele.hasContent()) {
Iterator eleIt = ele.elementIterator();
while (eleIt.hasNext()) {
echo((Node) eleIt.next());
}
}
break;
case Node.ATTRIBUTE_NODE:
System.out.println("~~~~~~~~~~~~~~ This is an attribute: ~~~~~~~~~~~~~~~");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName() + " Value: " + ((Attribute)node).getValue());
System.out.println("Xpath StringValue: " + node.getStringValue());
System.out.println("*********************************************");
break;
case Node.TEXT_NODE:
System.out.println("========== This is a text: " + node.getText() + "=========");
System.out.println("*********************************************");
break;
default:
System.out.println(" ^^^^^^^^^^^^^ Other type of node: ^^^^^^^^^^^^^");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName());
System.out.println("*********************************************");
break;
}
}
public static void main(String[] args) {
Dom4jParseXML test = new Dom4jParseXML();
test.scanXML(new File("F://build.xml"));
}
}
package com.mycompany.xmltest;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.xml.sax.SAXException;
public class DOMParseXML {
public void scanXML(File thefile) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
Document doc = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
doc = db.parse(thefile);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element root = doc.getDocumentElement();
echoNode(root);
}
private void echoNode(Node node) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
System.out.println("This is an element: ");
System.out.println("Name: " + node.getNodeName() + "/n");
if (node.hasChildNodes()) {
NodeList nlist = node.getChildNodes();
for (int i = 0; i < nlist.getLength(); i++) {
echoNode(nlist.item(i));
}
}
if (node.hasAttributes()) {
NamedNodeMap namedNodeMap = node.getAttributes();
for (int i = 0; i < namedNodeMap.getLength(); i++) {
echoNode(namedNodeMap.item(i));
}
}
break;
case Node.ATTRIBUTE_NODE:
System.out.println("This is an attribute: ");
System.out.println("Name :" + node.getNodeName());
System.out.println("Value :" + node.getNodeValue() + "/n");
break;
case Node.TEXT_NODE:
System.out.println("This is a text: ");
System.out.println("Content: /" " + node.getNodeValue() + "/"/n");
break;
default:
System.out.println("### Node type: " + node.getNodeType() + "###");
System.out.println("Name: " + node.getNodeName());
System.out.println("Value: " + node.getNodeValue());
break;
}
}
public static void main(String[] args) {
DOMParseXML test = new DOMParseXML();
test.scanXML(new File("F://1.xml"));
}
}
使用Dom4j:
package com.mycompany.xmltest;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class Dom4jParseXML {
public void scanXML(File thefile){
SAXReader saxReader = new SAXReader();
Document doc = null;
try {
doc = saxReader.read(thefile);
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
echo(root);
}
private void echo(Node node) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
System.out.println("############## This is an element: ###############");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName());
System.out.println("Xpath StringValue: " + node.getStringValue());
System.out.println("*********************************************");
Element ele = (Element) node;
if (ele.attributeCount() !=0 ) {
Iterator attrIt = ele.attributeIterator();
while (attrIt.hasNext()) {
echo((Node) attrIt.next());
}
}
if (ele.hasContent()) {
Iterator eleIt = ele.elementIterator();
while (eleIt.hasNext()) {
echo((Node) eleIt.next());
}
}
break;
case Node.ATTRIBUTE_NODE:
System.out.println("~~~~~~~~~~~~~~ This is an attribute: ~~~~~~~~~~~~~~~");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName() + " Value: " + ((Attribute)node).getValue());
System.out.println("Xpath StringValue: " + node.getStringValue());
System.out.println("*********************************************");
break;
case Node.TEXT_NODE:
System.out.println("========== This is a text: " + node.getText() + "=========");
System.out.println("*********************************************");
break;
default:
System.out.println(" ^^^^^^^^^^^^^ Other type of node: ^^^^^^^^^^^^^");
System.out.println("Type Name: " + node.getNodeTypeName());
System.out.println("Node Name: " + node.getName());
System.out.println("*********************************************");
break;
}
}
public static void main(String[] args) {
Dom4jParseXML test = new Dom4jParseXML();
test.scanXML(new File("F://build.xml"));
}
}
相关文章推荐
- IOS学习 iOS中集合遍历方法的比较和技巧
- OC学习之道:关于数组的集中经典遍历方法
- PHP中3种生成XML文件方法的速度比较
- iOS中数组遍历的方法及比较
- 深度学习中的数学与技巧(0):优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
- 利用Xml文件解析出数组的一种方法
- 【js学习笔记-055】比较方法
- 找出最大值和最小值的时间复杂度比较小的一种方法
- Leetcode 336. Palindrome Pairs 给出一种遍历字符串回文子串中心的方法
- ASP.NET:一段比较经典的多线程学习代码
- Python遍历文件夹的两种方法比较
- 【Python学习心得】Python数据分析几个比较常用的方法
- Python遍历文件夹的两种方法比较
- 自适应学习速率SGD优化方法比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
- 论文学习-从感知到决策:一种自动地面机器人的端到端运动规划的数据驱动方法
- 一段比较经典的多线程学习代码
- 人工智能 一种现代方法 第4章 超越经典搜索
- <转载>.NET:一段比较经典的多线程学习代码
- Xml文件读取与配置文件解析方法比较
- 通过getPixel();和通过bmp.getPixels();方法遍历整张图片的效率比较。