| 这是读取xml文件的java程序,我调试好的。采用的是dom方式读取xml文件到Vector中。 package src; import java.io.*; import java.util.Vector; import javax.xml.parsers.*; import org.w3c.dom.*; public class readxml { static Document document; private boolean validating; public readxml() { } public Vector toRead(String filename) { Vector title=new Vector(); Vector content=new Vector(); String myStr=new String(); try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(validating); DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse(new File(filename)); document.getDocumentElement().normalize(); Node node = document.getFirstChild(); NodeList list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { Node nodeitm = list.item(i); if (nodeitm.getNodeName().equals(Title)) { myStr=nodeitm.getFirstChild().getNodeValue(); title.addElement(myStr);//getFirstChild() } if (nodeitm.getNodeName().equals(Content)) { myStr=nodeitm.getFirstChild().getNodeValue(); content.addElement(myStr); } } } catch (Exception exp) { exp.printStackTrace(); return null; } Vector all=new Vector(); all.add(title); all.add(content); return all; } public static void main(String[] args) { Vector A; readxml my = new readxml(); A = my.toRead(f:\\tomcat5\\webapps\\myxml\\xmldata\\9.xml); for (int i = 0; i < A.size(); i++) { System.out.println(A.elementAt(i)); } } } 这是将xml写入文件。其中,transformer.setOutputProperty(OutputKeys.ENCODING,GB2312)关系到编码问题,非常重要。 import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.*; public class writexml { private Document document; private String filename; public writexml(String name) throws ParserConfigurationException{ filename=name; DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); document=builder.newDocument(); } public void toWrite(String mytitle,String mycontent){ Element root=document.createElement(WorkShop); document.appendChild(root); Element title=document.createElement(Title); title.appendChild(document.createTextNode(mytitle)); root.appendChild(title); Element content=document.createElement(Content); content.appendChild(document.createTextNode(mycontent)); root.appendChild(content); } public void toSave(){ try{ TransformerFactory tf=TransformerFactory.newInstance(); Transformer transformer=tf.newTransformer(); DOMSource source=new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING,GB2312); transformer.setOutputProperty(OutputKeys.INDENT,yes); PrintWriter pw=new PrintWriter(new FileOutputStream(filename)); StreamResult result=new StreamResult(pw); transformer.transform(source,result); } catch(TransformerException mye){ mye.printStackTrace(); } catch(IOException exp){ exp.printStackTrace(); } } public static void main(String args[]){ try{ writexml myxml=new writexml(f:\\tomcat5\\webapps\\myxml\\xmldata\\9.xml); myxml.toWrite(中文题目,中文内容); myxml.toSave(); System.out.print(Your writing is successful.); } catch(ParserConfigurationException exp){ exp.printStackTrace(); System.out.print(Your writing is failed.); } } } |