小弟初学,希望老鸟们多多指点,感激不尽。
、<?xml version="1.0" encoding="UTF-8" standalone="no"?><水果 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TestNameSpace.xsd">
<苹果 id="update">苹果</苹果>
<香蕉>香蕉</香蕉>
<葡萄>update group</葡萄><李子>中文</李子>
</水果>
JAVA 解析文件:
package hr.csdn.com;
import java.io.File;
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.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Dome3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DocumentBuilderFactory factor=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder=factor.newDocumentBuilder();
Document doc=builder.parse(new File("src/Test.xml"));
find(doc);//查找
findAtt(doc);//查找属性
creatElement(doc);//添加节点
removeElements(doc);
updateElements(doc);
updateAtt(doc);//修改属性
addAtt(doc);//添加节点属性
remove(doc);//删除节点属性
} catch (Exception e) {
e.printStackTrace();
}
}
private static void remove(Document doc){
Node bana=doc.getElementsByTagName("香蕉").item(0);
if(bana.getNodeType()==Node.ELEMENT_NODE){
Element emelent=(Element) bana;
emelent.removeAttribute("id");
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private static void addAtt(Document doc){
Node banan=doc.getElementsByTagName("香蕉").item(0);
if(banan.getNodeType()==Node.ELEMENT_NODE){
Element element=(Element) banan;
element.setAttribute("id","19");
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private static void updateAtt(Document doc) {
Node apple=doc.getElementsByTagName("苹果").item(0);
if(apple.getNodeType()==Node.ELEMENT_NODE){
Element element=(Element) apple;
//element.getAttributeNode("id").setNodeValue("update apple");
element.getAttributeNode("id").setValue("update");
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private static void updateElements(Document doc) {
Node group=doc.getElementsByTagName("葡萄").item(0);
group.setTextContent("update group");
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void removeElements(Document doc) {
Node group=doc.getElementsByTagName("葡萄").item(0);
group.getParentNode().removeChild(group);
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void creatElement(Document doc) {
NodeList shuiguos=doc.getElementsByTagName("水果");
Node shuiguo=shuiguos.item(0);
Node grap=doc.createElement("葡萄");//创建葡萄标签
Node groupValue=doc.createTextNode("group");//创建葡萄标签中的内容
grap.appendChild(groupValue);//将内容添加到标签
shuiguo.appendChild(grap);//将葡萄添加到水果标签中
shuiguo.insertBefore(grap, doc.getElementsByTagName("李子").item(0));
TransformerFactory factor=TransformerFactory.newInstance();
try {
Transformer former=factor.newTransformer();//创建转换工厂
former.transform(new DOMSource(doc),new StreamResult("src/Test.xml"));
//将内存的内容
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void findAtt(Document doc) {
NodeList nodelist=doc.getElementsByTagName("苹果");
Node node=nodelist.item(0);
if(node.getNodeType()==Node.ELEMENT_NODE){
Element element=(Element)node;
String name=element.getAttribute("id");
System.out.println(name);
}
}
private static void find(Document doc) {
NodeList nodelist=doc.getElementsByTagName("水果");
Node node=nodelist.item(0);//获取第一个水果元素
String value=node.getTextContent();
System.out.println(value);
}
}