java sax 创建xml_使用SAX和Java生成XML
时间: 2023-12-24 19:04:00 浏览: 91
java_xml.rar_java xml_sax_xml_xml ja_操作 xml
使用SAX和Java生成XML的步骤如下:
1. 创建一个 SAXParserFactory 实例并且用它来创建一个 SAXParser 对象。
2. 创建一个 DefaultHandler 的子类实例。
3. 调用 SAXParser 的 parse() 方法,并将 XML 文件名和 DefaultHandler 子类实例作为参数传入。
下面是一个使用 SAX 和 Java 创建 XML 文件的示例代码:
```java
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;
public class CreateXMLWithSAX {
public static void main(String[] args) throws Exception {
// 创建 SAXParserFactory 和 SAXParser 对象
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
// 创建 DefaultHandler 的子类实例
MyHandler handler = new MyHandler();
// 调用 parse() 方法解析 XML 文件
saxParser.parse(new File("students.xml"), handler);
}
}
class MyHandler extends DefaultHandler {
// 重写 startDocument() 方法
public void startDocument() throws SAXException {
System.out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
System.out.println("<students>");
}
// 重写 startElement() 方法
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.print("<" + qName);
for (int i = 0; i < attributes.getLength(); i++) {
System.out.print(" " + attributes.getQName(i) + "=\"" + attributes.getValue(i) + "\"");
}
System.out.print(">");
}
// 重写 characters() 方法
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.print(new String(ch, start, length));
}
// 重写 endElement() 方法
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.print("</" + qName + ">");
}
// 重写 endDocument() 方法
public void endDocument() throws SAXException {
System.out.println("</students>");
}
}
```
这个示例程序会读取名为 "students.xml" 的 XML 文件,并将其转化为以下格式的 XML:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="1001">Tom</student>
<student id="1002">Jerry</student>
<student id="1003">Mike</student>
</students>
```
注意:这个示例程序中,MyHandler 类继承了 DefaultHandler 类,并且重写了其中的方法,这些方法会在 SAX 解析过程中被调用。在这些方法中,我们可以根据需要对 XML 文件进行处理。
阅读全文