用jdom解析xml文件
- package test;
- import java.io.*;
- public class DOMTest
- {
- private String inFile = "c:\people.xml";
- private String outFile = "c:\people.xml";
- public static void main(String args[])
- {
- new DOMTest();
- }
- public DOMTest()
- {
- try
- {
- javax.xml.parsers.DocumentBuilder builder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
- org.w3c.dom.Document doc=builder.newDocument();
- org.w3c.dom.Element root=doc.createElement_x("老师");
- org.w3c.dom.Element wang=doc.createElement_x("王");
- org.w3c.dom.Element liu=doc.createElement_x("刘");
- wang.appendChild(doc.createTextNode("我是王老师"));
- root.appendChild(wang);
- doc.appendChild(root);
- javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
- transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");
- transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");
- transformer.transform(new javax.xml.transform.dom.DOMSource(doc),new javax.xml.transform.stream.StreamResult(outFile));
- }
- catch (Exception e)
- {
- System.out.println (e.getMessage());
- }
- }
- }
复制代码
用SAX方式解析XML
- import java.io.*;
- import java.util.Hashtable;
- import org.xml.sax.*;
- public class SAXHandler extends HandlerBase
- {
- private Hashtable table = new Hashtable();
- private String currentElement = null;
- private String currentValue = null;
- public void setTable(Hashtable table)
- {
- this.table = table;
- }
- public Hashtable getTable()
- {
- return table;
- }
- public void startElement(String tag, AttributeList attrs)
- throws SAXException
- {
- currentElement = tag;
- }
- public void characters(char[] ch, int start, int length)
- throws SAXException
- {
- currentValue = new String(ch, start, length);
- }
- public void endElement(String name) throws SAXException
- {
- if (currentElement.equals(name))
- table.put(currentElement, currentValue);
- }
- }
复制代码
JSP内容显示源码,SaxXml.jsp
- <HTML>
- <HEAD>
- <TITLE>剖析XML文件people.xml</TITLE>
- </HEAD>
- <BODY>
- <%@ page errorPage="ErrPage.jsp" contentType="text/html;charset=GB2312" %>
- <%@ page import="java.io.*" %>
- <%@ page import="java.util.Hashtable" %>
- <%@ page import="org.w3c.dom.*" %> <%@ page import="org.xml.sax.*" %>
- <%@ page import="javax.xml.parsers.SAXParserFactory" %>
- <%@ page import="javax.xml.parsers.SAXParser" %>
- <%@ page import="SAXHandler" %>
- <%
- File file = new File("c:people.xml");
- FileReader reader = new FileReader(file);
- Parser parser;
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser sp = spf.newSAXParser();
- SAXHandler handler = new SAXHandler();
- sp.parse(new InputSource(reader), handler);
- Hashtable hashTable = handler.getTable();
- out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>"); out.println("<TR><TD>姓名</TD>" + "<TD>" + (String)hashTable.get(new String("name")) + "</TD></TR>");
- out.println("<TR><TD>学院</TD>" + "<TD>" + (String)hashTable.get(new String("college"))+"</TD></TR>");
- out.println("<TR><TD>电话</TD>" + "<TD>" + (String)hashTable.get(new String("telephone")) + "</TD></TR>");
- out.println("<TR><TD>备注</TD>" + "<TD>" +
- (String)hashTable.get(new String("notes")) + "</TD></TR>");
- out.println("</TABLE>");
- %>
- </BODY>
- </HTML>
复制代码 |