Dom解析XML
来源:互联网 发布:php正则表达式匹配邮箱 编辑:程序博客网 时间:2024/06/07 01:56
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<exam>
<student examid="222" idcard="111">
<name>张三</name>
<location>沈阳</location>
<grade>89</grade>
</student>
<student examid="444" idcard="333">
<name>李四</name>
<location>山西</location>
<grade>99</grade>
</student>
</exam>
public class XmlUtil {
public static String filename="src/exam.xml";
public static Document getDocument() throws Exception{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(filename);
return document;
}
public static void writeXml(Document document) throws Exception, Exception{
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer tf=tFactory.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream(filename)));
}
}
public class StudentDao {
public void add(Student s){
try {
Document document = XmlUtil.getDocument();
Element student_tag=document.createElement("student");
student_tag.setAttribute("idcard",s.getIdcard());
student_tag.setAttribute("examid",s.getExamid());
Element name_tag=document.createElement("name");
Element location_tag=document.createElement("location");
Element grade_tag=document.createElement("grade");
name_tag.setTextContent(s.getName());
location_tag.setTextContent(s.getLocation());
grade_tag.setTextContent(s.getGrade()+"");
//建立标签之间的关系
student_tag.appendChild(grade_tag);
student_tag.appendChild(name_tag);
student_tag.appendChild(location_tag);
document.getElementsByTagName("exam").item(0).appendChild(student_tag);
//保存到内存
XmlUtil.writeXml(document);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public Student find(String examid){
try {
Document document = XmlUtil.getDocument();
NodeList list = document.getElementsByTagName("student");
for(int i=0;i<list.getLength();i++){
Element student_tag=(Element) list.item(i);
if(student_tag.getAttribute("examid").equals(examid)){
Student s=new Student();
s.setExamid(examid);
s.setIdcard(student_tag.getAttribute("idcard"));
s.setName(student_tag.getElementsByTagName("name").item(0).getTextContent());
s.setLocation(student_tag.getElementsByTagName("location").item(0).getTextContent());
s.setGrade(Double.parseDouble(student_tag.getElementsByTagName("grade").item(0).getTextContent()));
return s;
}
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return null;
}
public void delete(String name){
try {
Document document = XmlUtil.getDocument();
NodeList list = document.getElementsByTagName("name");
for(int i=0;i<list.getLength();i++){
Node node=list.item(i);
if(node.getTextContent().equals(name)){
node.getParentNode().getParentNode().removeChild(node.getParentNode());
XmlUtil.writeXml(document);
}
}
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
- XML DOM---解析xml dom
- 【XML】DOM解析XML
- 解析xml dom 解析
- xml解析 Dom解析
- dom解析xml
- dom解析 xml
- dom解析xml
- 解析xml之--DOM
- Dom解析XML文档
- DOM解析XML文件
- dom解析xml
- dom解析xml
- xml文件解析-DOM
- JAVA解析XML DOM
- DOM解析XML
- JAVA解析XML DOM
- XML DOM解析
- JAVA解析XML DOM
- 前端面试知识整理
- 用select实现的简单聊天室
- 九度1049(水题)
- break,continue,return的区别
- 回溯法求 1-n 全排列
- Dom解析XML
- C语言编程(练习3:字符串与字符串函数)
- HTK-3.4.1在ubuntu 14.04下的安装及Demo测试
- [整理]程序员编程艺术:第二章、字符串是否包含问题
- 使用RICHEDIT
- contiki 源码分析之其他(八)
- 代理模式(Proxy)
- MFC中的cstring成员函数使用
- 4W家庭理财 V2.4