packagecom.dwt1220;
importjava.io.FileOutputStream;
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importjavax.xml.transform.Transformer;
importjavax.xml.transform.TransformerFactory;
importjavax.xml.transform.dom.DOMSource;
importjavax.xml.transform.stream.StreamResult;
importorg.w3c.dom.Document;
importorg.w3c.dom.Element;
importorg.w3c.dom.Node;
importorg.w3c.dom.NodeList;
publicclasstestadmin {
publicstaticvoidmain(String[] args)throwsException {
/**************************** 创建Document类 *********************************************/
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("./src/student.xml");
/**************************** 添加student节点
*********************************************/
/**
* ①创建节点
* ②设置节点的值(包括属性)
* ③获得节点插入的位置
* ④插入节点
* ⑤更新文件
*/
/**①创建节点*/
/************ 创建student节点 **********/
Element studentElement = document.createElement("student");
/************ 创建name,location,grade节点 **********/
Element nameElement = document.createElement("name");
Element locationElement = document.createElement("location");
Element gradeElement = document.createElement("grade");
/**②设置节点的值(包括属性)*/
/************ 设置name,location,grade节点的值 ******/
nameElement.setTextContent("nameValue");
locationElement.setTextContent("locationValue");
gradeElement.setTextContent("gradeValue");
/************ 设置student节点的属性*******/
studentElement.setAttribute("examid","value");
studentElement.setAttribute("idcard","value");
/**③获得节点插入的位置*/
/************ 获得XML的根节点 ******/
Node rootNode = document.getElementsByTagName("exam").item(0);
/**④插入节点*/
/************ 把student节点添加到根节点下 ******/
rootNode.appendChild(studentElement);
/************ 把name,locationt,gradet节点添加到student节点下 ******/
studentElement.appendChild(nameElement);
studentElement.appendChild(locationElement);
studentElement.appendChild(gradeElement);
/**⑤更新文件*/
TransformerFactory transformerFactory =
TransformerFactory.newInstance();
Transformer tf = transformerFactory.newTransformer();
tf.transform(newDOMSource(document),newStreamResult(
newFileOutputStream("./src/student.xml")));
// /**************************** 修改name节点
// *********************************************/
// /**
// * 把name值为nameValue修改成newValue
// * ① 获得name节点的list
// * ②查找内容相符的name节点
// * ③修改节点内容
// * ④更新文件
// */
// String updataValue = "nameValue";
//
// /************ ① 获得需要修改的节点 **************/
// NodeList nameNodeList = document.getElementsByTagName("name");
//
// /************ ②查找内容相符的节点 **************/
// for (int i = 0; i
//
// /************ ③修改节点内容 **************/
// if (updataValue.equals(nameNodeList.item(i).getTextContent()))
// nameNodeList.item(i).setTextContent("newValue");
// }
//
// /** ④更新文件 */
// TransformerFactory transformerFactory = TransformerFactory
// .newInstance();
// Transformer tf = transformerFactory.newTransformer();
// tf.transform(new DOMSource(document), new StreamResult(
// new FileOutputStream("./src/student.xml")));
// /**************************** 删除节点or替换节点
// *********************************************/
// /***
// * 把name值为nameValue的Student节点删除
// * ① 获得name节点的list
// * ②查找内容相符的name节点
// * ③获得name的Student父节点, 从Student的父节点删除student
// * ④更新文件
// */
// String delaValue = "nameValue";
//
// /************ ① 获得name节点的list **************/
// NodeList nameNodeList = document.getElementsByTagName("name");
//
// /************ ②查找内容相符的name节点 **************/
// for (int i = 0; i
// if (delaValue.equals(nameNodeList.item(i).getTextContent())) {
// /************ ③获得name的Student父节点,从Student的父节点删除student
// **************/
// nameNodeList.item(i).getParentNode().getParentNode()
// .removeChild(nameNodeList.item(i).getParentNode());
// /*******如果要替换节点用.replaceChild(newChild, oldChild)方法************/
// }
// }
//
// /** ④更新文件 */
// TransformerFactory transformerFactory = TransformerFactory
// .newInstance();
// Transformer tf = transformerFactory.newTransformer();
// tf.transform(new DOMSource(document), new StreamResult(
// new FileOutputStream("./src/student.xml")));
// /************** 解析xml ************************/
// /****获得根节点*****/
// Element rootElement = document.getDocumentElement();
// /****获得所有student节点****/
// NodeList studentNodeList =
// rootElement.getElementsByTagName("student");
//
// /****打印student的节点名,和值****/
// for (int i = 0; i
// System.out.println("studentNodeitem("+"i): "+studentNodeList.item(i).getNodeName());
//
// /****获得所有student下的所有子节点****/
// NodeList studentChildNodeList =
// studentNodeList.item(i).getChildNodes();
//
// /****打印student下的所有字节点的,节点名 和值 ※回车算一个字text节点****/
// for(int j=0;j
// System.out.println(studentChildNodeList.item(j).getNodeName()+" "+studentChildNodeList.item(j).getTextContent());
// }
//
// }
}
}