package s0210xml文件的读取和创建; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; public class CreatXML { public static void main(String[] args) { try { //这几行代码基本是固定的 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();//通过工厂类创建一个builder Document document = builder.newDocument(); //用builder创建一个文件 //这几行代码基本是固定的 Element root = document.createElement("Languages"); //创建元素节点 root.setAttribute("cat", "itt"); //设置属性(属性名,属性值) //创建子节点lan1 Element lan1 = document.createElement("lan"); lan1.setAttribute("id", "1"); Element name1 = document.createElement("name"); name1.setTextContent("Java"); Element ide1 = document.createElement("ide"); ide1.setTextContent("Eclipse"); //setTextContent设置标签中间的文本内容 lan1.appendChild(name1); //添加子节点 lan1.appendChild(ide1); //添加子节点 //创建子节点lan1 //创建子节点lan1 Element lan2 = document.createElement("lan"); lan2.setAttribute("id", "2"); Element name2 = document.createElement("name"); name2.setTextContent("Swift"); Element ide2 = document.createElement("ide"); ide2.setTextContent("XCode"); lan2.appendChild(name2); lan2.appendChild(ide2); //创建子节点lan1 //创建子节点lan1 Element lan3 = document.createElement("lan"); lan3.setAttribute("id", "3"); Element name3 = document.createElement("name"); name3.setTextContent("C#"); Element ide3 = document.createElement("ide"); ide3.setTextContent("Visual Studio"); lan3.appendChild(name3); lan3.appendChild(ide3); //创建子节点lan1 //根节点添加子节点 root.appendChild(lan1); root.appendChild(lan2); root.appendChild(lan3); document.appendChild(root);//很重要,要将根节点添加到document中 //根节点添加子节点 //这里是固定格式 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer();//作用,将xml文档转换为其他格式 transformer.setOutputProperty("encoding", "UTF-8"); //这里是固定格式 //将xml文件保存为文件 //new StreamResult(new File("newxml.xml")转换为文件,在工程目录中刷新,就会显示xml文件,然后按ctrl+i对xml文档格式化 transformer.transform(new DOMSource(document), new StreamResult(new File("src/s0210xml文件的读取和创建/newxml.xml"))); //将xml文件保存为文件 } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }