dom解析非递归方式实现
来源:互联网 发布:网络直播平台方案 编辑:程序博客网 时间:2024/05/06 08:53
package huawei.com;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
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.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class domexample
{
public domexample()
{
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
InputStream is = new FileInputStream("E:/library.xml");
Document doc = dombuilder.parse(is);
Element root = doc.getDocumentElement();
NodeList books = root.getChildNodes();
if(null != books)
{
for(int i=0;i<books.getLength();i++)
{
Node book = books.item(i);
if(book.getNodeType() == Node.ELEMENT_NODE)
{
for(Node node = book.getFirstChild();node != null;node = node.getNextSibling())
{
if(node.getNodeType() == Node.TEXT_NODE && !node.getNodeValue().trim().equals(""))
{
String name = node.getNodeValue();
System.out.println(name);
}
else if(node.getNodeType() == Node.ELEMENT_NODE)
{
String name = book.getAttributes().getNamedItem("name").getNodeValue();
System.out.println(name);
for(Node node2 = book.getFirstChild();node2 != null;node2 = node2.getNextSibling())
{
if(node2.getNodeType() == Node.ELEMENT_NODE)
{
String name2 = node2.getAttributes().getNamedItem("name").getNodeValue();
System.out.println(name2);
String name3 = node2.getAttributes().getNamedItem("type").getNodeValue();
System.out.println(name3);
for(Node node3 = book.getFirstChild();node3 != null;node3 = node3.getNextSibling())
{
if(node3.getNodeType() == Node.ELEMENT_NODE)
{
String name4 = node3.getAttributes().getNamedItem("name").getNodeValue();
System.out.println(name4);
}
}
}
}
}
}
}
}
}
}
catch(ParserConfigurationException e)
{
e.printStackTrace();
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(SAXException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
new domexample();
}
}
- dom解析非递归方式实现
- 用递归个方式写dom解析
- 递归方式 DOM 解析(parse) XML
- 递归方式 DOM 解析(parse) XML
- 递归实现DOM解析任何XML文档
- 二叉树三种遍历方式的递归与非递归实现
- 二叉树三种遍历方式 递归与非递归实现
- 二叉树三种遍历方式 递归与非递归实现 总结
- c++二分查找实现(非递归和递归方式)
- 链表反转的递归和非递归实现方式
- 用递归和非递归方式实现二叉树
- 链表反转的递归和非递归实现方式
- 使用单链表反转的递归和非递归实现方式
- 二分法,递归和非递归方式 实现(Java)
- c++二分查找实现(非递归和递归方式)
- 二分查找的递归/非递归方式C++实现
- Dom动态递归解析
- 递归实现对任意XML的DOM 解析
- 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
- 用递归个方式写dom解析
- #pragma 预处理指令详解
- http_load 一个httpd 压力测试工具
- SQL 语句
- dom解析非递归方式实现
- oracle参数nls_length_semantics
- unbuntu下配置java环境
- 修复弹出JavaScript对话框时页面背景变白的问题
- PHP中str_replace函数使用数组
- SiteMesh
- Ubuntu Linux手动安装jdk
- xp系统安装iis记录
- 脚本优化