/////////////////////////////////jaxp对xml文档进行解析///////////////////////////////////////////

要操作的xml文件

<?xml version="1.0" encoding="GB2312" standalone="no"?><PhoneInfo>
    <Brand name="华为">
        <Type name="U8650"/><Type name="HW123"/>
        <Type name="HW321"/>
    </Brand>
    <Brand name="苹果">
    <Type name="iPhone4"/>
    </Brand>
    <Brand name="vivo">
        <Type name="nb"/>
    </Brand>
</PhoneInfo>

//////////////////////////////////////////////////////////////////////////////////////////////////

package xinhuiji_day15;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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;
import org.xml.sax.SAXException;

public class xmlTest {

/**
     * @param args
     * @throws ParserConfigurationException
     * @throws IOException
     * @throws SAXException
     * @throws TransformerException
     */
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException {
//        test3();
//        findId("3");
        addNode();
    }
  //查找节点的内容
    public static void test3() throws ParserConfigurationException,
            SAXException, IOException {
        DocumentBuilderFactory daoFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = daoFactory.newDocumentBuilder();
        Document doc = builder.parse("src/网易手机各地行情.xml");
        NodeList nodeList = doc.getElementsByTagName("pubDate");
        for(int i = 0;i<nodeList.getLength();i++){
            Element e = (Element) nodeList.item(i);
            System.out.println(e.getFirstChild().getNodeValue());
        }
    }
    
    public void test() throws ParserConfigurationException, SAXException, IOException{
        DocumentBuilderFactory daoFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = daoFactory.newDocumentBuilder();
        Document doc = builder.parse("src/收藏信息.xml");
        NodeList nodeList = doc.getElementsByTagName("Brand");
        for(int i = 0;i<nodeList.getLength();i++){
            Element e = (Element) nodeList.item(i);
//            System.out.println(e.getFirstChild().getNodeValue());
            System.out.println(e.getTagName());
            System.out.println(e.getAttribute("name"));
            NodeList nod = e.getElementsByTagName("Type");
            for(int j = 0;j<nod.getLength();j++){
                Element ne = (Element) nod.item(j);
                System.out.println("\t"+ne.getAttribute("name"));
            }
        }
    }
    
    public static void findId(String id) throws ParserConfigurationException, SAXException, IOException{
        DocumentBuilderFactory daoFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = daoFactory.newDocumentBuilder();
        Document doc = builder.parse("src/网易手机各地行情.xml");
        NodeList nodeList = doc.getElementsByTagName("item");
        for(int i = 0;i<nodeList.getLength();i++){
            Element e = (Element) nodeList.item(i);
            String xmlId = e.getAttribute("id");
            if(xmlId.equals(id)){
                System.out.println(e.getElementsByTagName("title").item(0)
                        .getFirstChild().getNodeValue());
            }
        }
    }
    //增加节点
    public static void addNode() throws ParserConfigurationException, SAXException, IOException, TransformerException{
        DocumentBuilderFactory daoFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = daoFactory.newDocumentBuilder();
        Document doc = builder.parse("src/收藏信息.xml");
        Element brandElement = doc.createElement("Brand");
        brandElement.setAttribute("name", "vivo");
        Element typeElement = doc.createElement("Type");
        typeElement.setAttribute("name", "nb");
        Element rootElement = (Element) doc.getElementsByTagName("PhoneInfo").item(0);
        brandElement.appendChild(typeElement);
        rootElement.appendChild(brandElement);
        //向xml文件中写
        TransformerFactory tff = TransformerFactory.newInstance();
        Transformer ts = tff.newTransformer();
        DOMSource source = new DOMSource(doc);
        ts.setOutputProperty(OutputKeys.ENCODING, "gb2312");
        StreamResult result = new StreamResult(new File("src/收藏信息.xml"));
        ts.transform(source, result);
        
        
    }

}

xml 操作的更多相关文章

  1. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  2. T-Sql(五)xml操作

    t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...

  3. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  4. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  5. 简单的XML操作类

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  6. .net学习笔记---xml操作及读写

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  7. C#常用操作类库三(XML操作类)

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  8. php xml 操作。

    参考 文章:http://www.cnblogs.com/zcy_soft/archive/2011/01/26/1945482.html DOMDocument相关的内容. 属性: Attribut ...

  9. XML Helper XML操作类

    写的一个XML操作类,包括读取/插入/修改/删除. using System;using System.Data;using System.Configuration;using System.Web ...

  10. 我的PHP之旅--XML操作

    XML操作 XML主要是做数据存储和WEB服务的,所以我们难免要操作它,这里只介绍PHP的simpleXML方式. 我们要操作的XML: <?xml version="1.0" ...

随机推荐

  1. 洛谷 P1072 Hankson 的趣味题

    题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲 ...

  2. Codevs 1159 最大全0子矩阵 悬线法!!!!

    1159 最大全0子矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O ...

  3. hdu 2732 Leapin' Lizards 最大流 拆点 建图

    题目链接 题意 给定一张网格,格子中有些地方有柱子,有些柱子上面有蜥蜴. 每个柱子只能承受有限只蜥蜴从上面经过.每只蜥蜴每次能走到相距曼哈顿距离\(\leq k\)的格子中去. 问有多少只蜥蜴能走出网 ...

  4. emacs使用http代理打开

    环境:ubuntu 15.10 64bit,emacs 24 ,git http代理搭建方法:http://www.cnblogs.com/liuxuzzz/p/5324749.html 原因: 因为 ...

  5. ie8实现无刷新文件上传

    ie8由于无法使用FormData,想要无刷新上传文件就显得比较麻烦.这里推荐使用jQuery-File-Upload插件,它能够很方便的解决ie8无刷新文件上传问题.(最低兼容到ie6) jQuer ...

  6. ZSTU 4248 KI的目标(dfs)

    KI的目标 Time Limit: 2 Sec  Memory Limit: 128 MB                                                        ...

  7. Fiddler简介以及web抓包

    Fiddler简介以及web抓包 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.Fiddler简介简单来说,Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联 ...

  8. 浅谈.Net异步编程的前世今生----EAP篇

    前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...

  9. java之properties和yml两种配置文件比较(非原创)

    文章大纲 一.内容介绍二.参考文章 一.内容介绍   我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.ym ...

  10. IOS7开发~UIKit Dynamics

    UIKit Dynamics的中文名称:有叫UIKit动力,也有叫UIKit动力模型和UIKit动态或者动态UI,叫什么名不要紧,理解就含义就可以了. 什么是UIKit Dynamics ? UIKi ...