Element的APIjava
1)void removeAttribute(String name):经过名称移除属性app
2)void setAttribute(String name,String value):给定属性名称和值,添加新属性dom
下面将鲜花的id属性改成编号属性,而后在xml文件的最后添加节点:ui
flowers.xml文件code
<?xml version="1.0" encoding="UTF-8"?> <flowers> <flower id="1"> <name>玫瑰</name> <price>10</price> </flower> <flower id="2"> <name>百合</name> <price>20</price> </flower> <flower id="3"> <name>兰花</name> <price>30</price> </flower> </flowers>
WriteElement.javaorm
import java.io.File; import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; 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; import org.w3c.dom.NodeList; public class WriteElement { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); DocumentBuilder db=dbf.newDocumentBuilder(); Document doc=db.parse("flowers.xml"); //查询全部flower NodeList list=doc.getElementsByTagName("flower"); for(int i=0;i<list.getLength();i++){ Element flowerElement=(Element)list.item(i); //得到id属性 String id=flowerElement.getAttribute("id"); //删除id属性 flowerElement.removeAttribute("id"); //添加"编号"属性,值为原先的id属性值 flowerElement.setAttribute("编号", id); } //建立一个新元素 Element newFlower=doc.createElement("flower"); newFlower.setAttribute("编号","4"); Element newName=doc.createElement("name"); newName.setTextContent("康乃馨"); newFlower.appendChild(newName); Element newPrice=doc.createElement("price"); newPrice.setTextContent("23"); newFlower.appendChild(newPrice); //获得根节点 Element root=doc.getDocumentElement(); //在根节点中添加newFlower root.appendChild(newFlower); //保存入文件 TransformerFactory tf=TransformerFactory.newInstance(); Transformer transformer=tf.newTransformer(); DOMSource source=new DOMSource(doc); //将Document对象封装为DOM源 File file=new File("newFlowers.xml"); StreamResult result=new StreamResult(file); //经过StreamResult包装File对象,肯定输出的目标 transformer.transform(source, result); //利用Transformer的transform方法将源输出到目标 } }
显示效果newFlower.xml文件xml