📄 domxml.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 + -