⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domxml.java

📁 一个具有读写XML文档功能的程序。它先建立一个student bean
💻 JAVA
字号:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;

public class DomXML
{
	public static List readXMLFile(String inFile) throws Exception
	{
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		DocumentBuilder db=null;
		try
		{
			db=dbf.newDocumentBuilder();
		}
		catch(ParserConfigurationException pce)
		{
			System.err.println(pce);
			return null;
		}
		
		Document doc=null;
		try
		{
			doc=db.parse(inFile);
			doc.normalize();
		}
		catch(DOMException ioe)
		{
			System.err.println(ioe);
			return null;
		}
		
		List studentBeans=new ArrayList();
		StudentBean studentBean=null;
		Element root=doc.getDocumentElement();
		NodeList students=root.getElementsByTagName("XS");
		for(int i=0;i<students.getLength();i++)
		{
			Element student=(Element)students.item(i);
			studentBean=new StudentBean();
			studentBean.setGender(student.getAttribute("XB"));
			NodeList names=student.getElementsByTagName("XM");
			if(names.getLength()==1)
			{
				Element e=(Element)names.item(0);
				Text t=(Text)e.getFirstChild();
				studentBean.setName(t.getNodeValue());
			}
			
			NodeList ages=student.getElementsByTagName("NL");
			if(ages.getLength()==1)
			{
				Element e=(Element)ages.item(0);
				Text t=(Text)e.getFirstChild();
				studentBean.setAge(Integer.parseInt(t.getNodeValue()));
			}
			
			NodeList phones=student.getElementsByTagName("DH");
			if(phones.getLength()==1)
			{
				Element e=(Element)phones.item(0);
				Text t=(Text)e.getFirstChild();
				studentBean.setPhone(t.getNodeValue());
			}
			studentBeans.add(studentBean);
		}
		return studentBeans;
	}
	
	public static String writeXMLFile(String outFile,List studentBeans) throws Exception
	{
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		DocumentBuilder db=null;
		try
		{
			db=dbf.newDocumentBuilder();
		}
		catch(ParserConfigurationException pce)
		{
			System.err.println(pce);
			return null;
		}
		Document doc=null;
		doc=db.newDocument();
		
		Element root=doc.createElement("XSHMC");
		doc.appendChild(root);
		
		for(int i=0;i<studentBeans.size();i++)
		{
			StudentBean studentBean=(StudentBean)studentBeans.get(i);
			Element student=doc.createElement("XS");
			student.setAttribute("XB", studentBean.getGender());
			root.appendChild(student);
			
			Element name=doc.createElement("XM");
			student.appendChild(name);
			Text tName=doc.createTextNode(studentBean.getName());
			name.appendChild(tName);
			
			Element age=doc.createElement("NL");
			student.appendChild(age);
			Text tAge=doc.createTextNode(String.valueOf(studentBean.getAge()));
			age.appendChild(tAge);	
			
			Element phone=doc.createElement("DH");
			student.appendChild(phone);
			Text tPhone=doc.createTextNode(studentBean.getPhone());
			phone.appendChild(tPhone);
		}
		return domDocToFile(doc,outFile,"GB2312");
	}
	
	public static String domDocToFile(Document doc,String fileName,String encoding) throws TransformerException
	{
		TransformerFactory tFactory=TransformerFactory.newInstance();
		Transformer transformer=tFactory.newTransformer();
		
		Properties properties=transformer.getOutputProperties();
		properties.setProperty(OutputKeys.ENCODING,encoding);
		properties.setProperty(OutputKeys.METHOD, "xml");
		transformer.setOutputProperties(properties);
		
		DOMSource source=new DOMSource(doc);
		File file=new File(fileName);
		StreamResult result=new StreamResult(file);
		transformer.transform(source,result);
		return file.getAbsolutePath();
	}
	
	public static void main(String[] args)
	{
		String inFileName="students.xml";
		String outFileName="students_new.xml";
		try
		{
			List studentBeans=DomXML.readXMLFile(inFileName);
			DomXML.writeXMLFile(outFileName, studentBeans);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -