SAX版
package com.mobi.bean;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.util.*;
import java.io.*;
public class SAXReader extends DefaultHandler
{
java.util.Stack tags = new java.util.Stack();
// --------------XML Content-------------
String text = null;
String url = null;
String author = null;
String description = null;
String day = null;
String year = null;
String month = null;
// ----------------------------------------------
public void endDocument() throws SAXException
{
System.out.println("------Parse End--------");
}
public void startDocument() throws SAXException
{
System.out.println("------Parse Begin--------");
}
public void startElement(String p0, String p1, String p2, Attributes p3)
throws SAXException
{
tags.push(p1);
}
public void endElement(String p0, String p1, String p2) throws SAXException
{
tags.pop();
if (p1.equals("link")) printout();
}
public void characters(char[] p0, int p1, int p2) throws SAXException
{
String tag = (String) tags.peek();
if (tag.equals("text"))
text = new String(p0, p1, p2);
else
if (tag.equals("url"))
url = new String(p0, p1, p2);
else
if (tag.equals("author"))
author = new String(p0, p1, p2);
else
if (tag.equals("day"))
day = new String(p0, p1, p2);
else
if (tag.equals("month"))
month = new String(p0, p1, p2);
else
if (tag.equals("year"))
year = new String(p0, p1, p2);
else
if (tag.equals("description"))
year = new String(p0, p1, p2);
}
private void printout()
{
System.out.print("Content: ");
System.out.println(text);
System.out.print("URL: ");
System.out.println(url);
System.out.print("Author: ");
System.out.println(author);
System.out.print("Date: ");
System.out.println(day + "-" + month + "-" + year);
System.out.print("Description: ");
System.out.println(description);
System.out.println();
}
static public void main(String[] args)
{
String filename = null;
boolean validation = false;
filename = "links.xml";
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = null;
try
{
saxParser = spf.newSAXParser();
}
catch (Exception ex)
{
System.err.println(ex);
System.exit(1);
}
try
{
saxParser.parse(new File(filename), new SAXReader());
}
catch (SAXException se)
{
System.err.println(se.getMessage());
System.exit(1);
}
catch (IOException ioe)
{
System.err.println(ioe);
System.exit(1);
}
}
}
Factory版
package com.mobi.bean;
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class xmldisplay
{
public static void main(String args[])
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("links.xml");
doc.normalize();
NodeList links = doc.getElementsByTagName("link");
for (int i = 0; i < links.getLength(); i++)
{
Element link = (Element) links.item(i);
System.out.print("Content: ");
System.out.println(link.getElementsByTagName("text").item(0).getFirstChild().getNodeValue());
System.out.print("URL: ");
System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());
System.out.print("Author: ");
System.out.println(link.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
System.out.print("Date: ");
Element linkdate = (Element) link.getElementsByTagName("date").item(0);
String day = linkdate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
String month = linkdate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
String year = linkdate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
System.out.println(day + "-" + month + "-" + year);
System.out.print("Description: ");
System.out.println(link.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());
System.out.println();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
### Java读写XML、Word与TXT文件:去除乱码问题详解 #### 一、引言 在实际开发过程中,我们经常需要处理各种类型的文件,包括XML、Word文档以及普通的文本文件(如TXT)。这些文件在读写过程中经常会遇到乱码问题,...
### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...
Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...
要读取XML文件,Java提供了多种方法。以下是四种常用的方法,每种都有其适用场景和特点: 1. **DOM解析器(Document Object Model)** DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点...
使用 Java 读取 XML 配置文件 Java 语言和 XML 技术可以说是黄金组合,网上已经有很多文章介绍 XML 在电子商务中的数据交换的作用。但是在平时系统开发中,我们不一定都用到数据交换,是否无法使用 XML?当然不是...
以上就是Java读取XML数据的主要方法。选择哪种方式取决于具体的需求,如处理大型XML文件时,SAX和StAX更为高效;而如果需要频繁查询和修改XML结构,DOM和DOM相关的库可能更适合。在实际开发中,可以根据项目规模、...
在Java编程中,读取XML文件并将其转换为树形结构是一种常见的操作,尤其是在处理配置文件、数据交换或解析XML文档时。以下是一篇详细解释如何实现这一过程的文章。 首先,我们需要了解XML(eXtensible Markup ...
### Java读写XML文件操作详解 在现代软件开发中,XML(可扩展标记语言)是一种广泛使用的数据交换格式,尤其在处理配置文件、数据存储以及跨平台数据交换时显得尤为重要。Java提供了多种读写XML文件的方法,包括SAX...
Java 读取 XML 文件内容的四种方法 Java 语言提供了多种方法来读取 XML 文件内容,以下是四种常见的方法: 1. DOM(Document Object Model) DOM 是一种基于树的模型,它将 XML 文档表示为一个层次结构的节点或...
### Java读写XML文件的方法详解 #### 一、概述 在Java编程中,XML(Extensible Markup Language,可扩展标记语言)是一种广泛使用的数据交换格式。由于其良好的跨平台特性和自描述性,使得XML成为了许多应用程序...
三、Java读取XML 1. DOM方式读取: 使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来创建DOM对象,然后通过`getElementsByTagName`、`getAttribute`等方法获取元素和属性。 2. SAX方式...
Java读取XML文件是开发过程中常见的任务,JDOM是一个用于处理XML文档的Java库,它提供了方便、高效的方式来创建和操作XML数据。本篇将详细讲解如何使用JDOM来读取XML文件,以及相关的源码解析。 首先,我们需要了解...
在Java编程中,读取XML(eXtensible Markup Language)文件内容是一项常见的任务,尤其在处理配置数据、数据交换或者存储结构化信息时。XML因其可读性强、结构清晰的特点,被广泛应用于各种场景。本篇文章将详细介绍...
Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常见的方法,分别使用 DOM、DOM4J、JDOM 和 SAX 解析器。 第一种方法:使用 DOM DOM(Document Object Model)是一种树形结构,...
Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...
二、Java读取XML文件 1. 使用DOM解析: 读取XML文件时,首先会将整个XML文档加载到内存中的DOM树,然后通过API遍历和访问各个节点。 示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax....
在“java读取XML用到的jar包集合”中,包含了9个关键的JAR文件,它们提供了处理XML所需的API和功能。以下是这些JAR文件可能包含的重要知识点: 1. **JAXB (Java Architecture for XML Binding)** JAXB是Java标准版...
在Java编程中,读取XML文件并从中获取Oracle数据库连接是一项常见的...以上就是关于"Java读取xml文件中oracle数据库连接"的相关知识,希望对您有所帮助。在实际项目中,可能还需要考虑异常处理、连接池管理等高级话题。