xml相关操作

xml :可扩展标记语言,XML 被设计用来传输和存储数据。

javascript解析xml:

 

<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

</script>


java解析xml:(dom4j)

准备xml数据:

<stu>
<student id="1001"> <name>张三</name> <sex></sex> <age>18</age> </student> <student id="1002"> <name>李四</name> <sex></sex> <age>17</age> </student> </stu>

获取xml信息:

        SAXReader sr = new SAXReader();
        
        Document document = sr.read("src/stu.xml");
        // 获取根节点
        Element root = document.getRootElement();
        // 获取根节点下子节点集合
        List<Element> elements = root.elements();
        // 获取student节点集合
        //List<Element> elements = root.elements("student");
        
        for (Element element : elements) { // student
            
            // 获取值(1)
            List<Element> list = element.elements();
            for (Element element2 : list) { 
                System.out.println(element2.getTextTrim()); 
            }
            // 获取值(2)
            System.out.println(element.elementTextTrim("name"));
            System.out.println(element.elementTextTrim("sex"));
            System.out.println(element.elementTextTrim("age"));
            // 获取属性值
            System.out.println(element.attributeValue("id"));
        }

新增xml节点:

Element menuElement = root.addElement("student");  
		  
Element engNameElement = menuElement.addElement("name");  
		  
engNameElement.setText("王五");  
		  
Element chiNameElement = menuElement.addElement("age");  
		  
chiNameElement.setText("19"); 
		
Element sexNameElement = menuElement.addElement("sex");  
		  
sexNameElement.setText("男"); 
		
menuElement.addAttribute("id", "1003");

修改xml节点:

List<Element> menuElements = root.elements();;

for (Element element : menuElements) {
    if(element.attributeValue("id").equals("1001")) {
        element.element("name").setText("赵六");
    }
}

删除xml节点:

List<Element> menuElements = root.elements();;

for (Element element : menuElements) {
    if(element.attributeValue("id").equals("1003")) {
        root.remove(element);
        break;
    }
}
    

修改xml节点后写入文件:

XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/stu.xml"), "UTF-8"));  
writer.write(document);  
writer.close(); 

 创建xml文件:

public static void main(String args[]) {  
  
    String fileName = "c:/text.xml";  
  
    Document document = DocumentHelper.createDocument();// 建立document对象,用来操作xml文件  
  
    Element booksElement = document.addElement("books");// 建立根节点  
  
    booksElement.addComment("This is a test for dom4j ");// 加入一行注释  
  
    Element bookElement = booksElement.addElement("book");// 添加一个book节点  
  
    bookElement.addAttribute("show", "yes");// 添加属性内容  
  
    Element titleElement = bookElement.addElement("title");// 添加文本节点  
  
    titleElement.setText("ajax in action");// 添加文本内容  
  
    try {  
  
        XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)));  
         writer.write(document) //写入
 
        writer.close();  
  
    } catch (Exception e) {  
  
        e.printStackTrace();  
  
    }  
  
}

  

posted on 2021-11-19 13:22  java-go  阅读(18)  评论(0)    收藏  举报

导航