`
simple_hui
  • 浏览: 153672 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

org.w3c.dom解析xml

阅读更多

一直用的dom4j解析,最近碰到工程里面是这种解析方式。

先记录下网上百度的一段代码。

 

写道
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import javax.xml.parsers.*;
import org.w3c.dom.*;
public class edit
{
public static void main(String[] args)
{
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("links.xml");
doc.normalize();

NodeList books =doc.getDocumentElement().getChildNodes();
Node book;
NodeList lists;

book=books.item(1);

//添加节点
Element id=doc.createElement("id");
id.appendChild(doc.createTextNode("first"));
book.appendChild(id);
//删除节点
book.removeChild(book.getChildNodes().item(1));

//修改节点
Text sina=doc.createTextNode("sina");
book.getChildNodes().item(2).replaceChild(sina,book.getChildNodes().item(2).getFirstChild());

System.out.println(book.getChildNodes().item(2).getNodeName());
System.out.println(books.getLength());
System.out.println(book.getChildNodes().getLength());
//浏览查看
for(int i=1;i<books.getLength();i++)
{
book=books.item(i);
lists=book.getChildNodes();
for(int j=1;j<lists.getLength();j++)
{
if(lists.item(j).getNodeType()==Node.ELEMENT_NODE)
System.out.println(lists.item(j).getFirstChild().getNodeValue());
}
}

TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new java.io.File("links.xml"));
transformer.transform(source, result);
}catch(Exception e){System.out.println(e);}
}
}

 -----------------------------------------------------------------------------------------------------

有如下的xml文档

<?xml version=”1.0”?>

<font>

        <name>Helvetica</name>

        <size>36</size>

</font>

遍历整个xml的所有node

 

 

 

XML文档时,解析器会得到5个结果:

写道
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 XMLReader {


public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException

{

File file = new File("test.xml");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

//将xml文件解释成文档对象

Document doc = db.parse(file);

//取得文档根

doc.normalize();

Element root = doc.getDocumentElement();

//取得要元素名

System.out.println("The root element is:" + root.getNodeName());

//获取孩子节点

NodeList children = root.getChildNodes();

stepThrough(root);

}



private static void stepThrough (Node start)

{

for(Node child = start.getFirstChild();child != null;child = child.getNextSibling())

{

if(child instanceof Element)//去除多余的空白

{

System.out.print("节点名:"+child.getNodeName());

System.out.println("\t节点值:"+ child.getNodeValue());

}

if(child != null)

stepThrough(child);

}

}

}

 在处理这个

 

<font><name>之间的空白区域

Name元素

</name><size>之间的空白区域

Size元素

</size></font>之间的空白区域

如果只希望得到子元素,那么你可以忽略空白字符:

 

 

xml文档节点

写道
for(int i = 0;i < children.getLength(); i++)

{

Node child = children.item(i);

if (child instanceof Element)

{

Element childElement = (Element)child;

......

}

}

 遍历整个

 

for(Node childNode = element.getFirstChild();childNode != null;childNode = childNode.getNextSibling())

{

        ......

}

遍历整个xml某节点的所有属性

 

 

 

写道
NameNodeMap attributes = element.getAttributes();

for (int i = 0;i<attributes.getLength();i++)

{

Node attribute = attributes.item(i);

String name = attribute.getNodeName();//获得属性名

String value = attribute.getNodeValue();//获得属性值

}

 如果只想知道己知属性的值,只需用

 

String unit = element.getAttribute(“unit”);

分享到:
评论

相关推荐

    w3c-dom.jar 包

    w3c-dom.jar 包 dom解析xml使用 包 免积分下载

    dom.sax.pull解析

    Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的形式通知程序,对Xml进行解析。 Ø 3、XMLPULL(org.xmlpull.v1) ...

    分享一个xml解析方法

    一个xml的解析方法,供参考。 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource;

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    W3C 标准 XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。 换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 -&gt;操作创建或...

    Chenso:Chenso 是一个 org.w3c.dom XML wrapperparser 库

    Chenso 是一个 org.w3c.dom XML 包装器/解析器库。 基本用法 运行测试 视窗 gradlew test Unix ./gradlew test 建造 视窗 gradlew.bat build Unix ./gradlew build 用法 获取 XML 元素中名称的第一个值 String ...

    java解析xml

    // 解析XML文档的输入流,得到一个Document Document doc = dombuilder.parse(is); // 得到XML文档的根节点 Element root = doc.getDocumentElement(); // 得到节点的子节点 NodeList books = root....

    java dom 解析 xml 实例

    java dom 解析 xml 实例 介绍w3c中的元素的用法,以及在解析xml过程中用到的API进行详细解释

    使用dom4j解析XML

    dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...

    Java解析XML工具类--(java源码)

    import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ ...

    fluentxml4j:Java中用于XML解析,序列化,XPath查询和转换的fluent API

    从java.io输入解析到org.w3c.dom.Document 将org.w3c.dom.Document序列化为任何java.io输出 通过XSLT和自定义过滤器支持将java.io,SAX,StAX,JAXB输入转换为它们中的任何一个 通过XPath查询org.w3c.dom.Document...

    JAVA_API1.6文档(中文)

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml...

    利用Dom4j生成XML和解析XML

    Namespace namespace1 = new DefaultNamespace("xs", "http://www.w3.org/2001/XMLSchema"); Namespace namespace2 = new DefaultNamespace("", namespace); root.add(namespace1); root.add(namespace2); ...

    [Java参考文档]

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml...

    dom4j-1.6.1 + w3cschool.CHM离线帮助文档

    dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。 Java 对 dom 技术解析标记也做了实现。 sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for ...

    JavaAPI中文chm文档 part2

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml...

    java api最新7.0

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml....

    JavaAPI1.6中文chm文档 part1

    javax.xml.crypto.dsig.dom javax.xml.crypto.dsig 包特定于 DOM 的类。 javax.xml.crypto.dsig.keyinfo 用来解析和处理 KeyInfo 元素和结构的类。 javax.xml.crypto.dsig.spec XML 数字签名的参数类。 javax.xml...

Global site tag (gtag.js) - Google Analytics