/**
* 读取(解析)xml文件
* @author Administrator
*
*/
public class DOMRead {
public static void main(String[] args) throws Exception{
File file=new File("e:\\contact.xml");
InputStream in=new FileInputStream(file);
//创建DocuemntBuilderFactory实例化对象
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//通过DocumentBuilderFactory实例化对象来创建DocumentBuilder对象
DocumentBuilder db=dbf.newDocumentBuilder();
//通过DocumentBuilder实例化对象 解析方法 来获取Document对象
Document document=db.parse(in); //通过document对象来获取指定tagName的所有标签元素
NodeList memberList = document.getElementsByTagName("member");
for(int i=0;i<memberList.getLength();i++){
//获取指定索引的标签元素
Element ele =(Element) memberList.item(i);
//获取标签元素的属性
String id = ele.getAttribute("id");
String name = ele.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
String phone = ele.getElementsByTagName("phone").item(0).getFirstChild().getNodeValue();
System.out.println("id="+id+",name="+name+",phone="+phone);
}
}
} /**
* 输出(创建)xml文件
* @author Administrator
*
*/
public class DOMWrit {
public static void main(String[] args) throws Exception {
File outFile=new File("e:"+File.separator+"book.xml"); DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
//通过DocumentBuilder实例化对象 创建方式 来获取Document对象
Document document=db.newDocument(); //创建根节点books
Element booksElement=document.createElement("books");
String[] title=new String[]{"三国演义","红楼梦","水浒传"};
Double[] price=new Double[]{99.9,88.8,77.7}; for(int i=0;i<title.length;i++){
//创建book节点
Element bookElt=document.createElement("book");
//创建title、price节点
Element titleElt=document.createElement("title");
Element priceElt=document.createElement("price");
//设置title节点的内容,需要创建文本节点
titleElt.appendChild(document.createTextNode(title[i]));
//设置price节点的内容,需要创建文本节点
priceElt.appendChild(document.createTextNode(String.valueOf(price[i]))); //将title、price节点添加到book节点中
bookElt.appendChild(titleElt);
bookElt.appendChild(priceElt); //将book节点添加到books根节点中
booksElement.appendChild(bookElt);
}
//遗忘的步骤
//将根节点设置到Document之中
document.appendChild(booksElement); //将DOM树转换为xml进行输出
TransformerFactory transformerfactory=TransformerFactory.newInstance();
Transformer transformer=transformerfactory.newTransformer(); //设置输出的元素
Source xmlSource=new DOMSource(document); Result outputTarget=new StreamResult(outFile); transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
//输出
transformer.transform(xmlSource, outputTarget); }
}

DOM-XML(解析与创建)的更多相关文章

  1. XML解析和创建的JAXB方式

    1.说明 JAXB是Java Architecture for XML Binding, 即用于XML绑定的Java体系结构, JAXB作为JDK的一部分, 能便捷地将Java对象与XML进行相互转换 ...

  2. java dom xml解析和windows dom解析的差别

    1.java dom 子节点包括空节点. 2.java dom 文档节点值也是其的子节点. 而windows dom(mshtml.dll)子节点不包括空节点,而节点值也不是以子节点的方式来对待的.

  3. Java&Xml教程(二)使用DOM方式解析XML文件

    DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...

  4. 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据

    GDataXMLDocument-XML解析 #pragma mark - ======== Dom XML解析 - (IBAction)domParserActionXML_Document:(id ...

  5. XML:使用DOM技术解析xML文件中的城市,实现select级联选择

    中国的城市xml格式:cities.xml <?xml version="1.0" encoding="utf-8"?> <china> ...

  6. xml的解析与创建——bing到youdao导入文件的转换

    首先是为了解决一个问题:如何将必应单词本中记录的单词转入到有道词典中去.实际上,必应词典可以导出xml文件,但是该文件有道词典无法解析.这里涉及到xml的解析和创建了. 代码如下: import ja ...

  7. XML解析之DOM详解及与SAX解析方法的比较

    XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...

  8. 初学DOM树解析xml文件

    做了一次设计模式实验的题目: 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以将原本存储在手机中的通信录.短信.照片.歌曲等资料一次性全部拷贝到移动存储介质(例如MMC卡或 ...

  9. 【Java】XML解析之DOM

    DOM介绍 DOM(Document Object Model)解析是官方提供的XML解析方式之一,使用时无需引入第三方包,代码编写简单,方便修改树结构,但是由于DOM解析时是将整个XML文件加载到内 ...

  10. DOM方式解析XML文件实例

    books.XML文件: <?xml version="1.0" encoding="utf-8"?><bookstore>    &l ...

随机推荐

  1. Mysql5.6版本内存占用过高解决方法[链接]

    传送门: http://blog.linsongzheng.com/archives/159.html

  2. 数据库-mysql数据库和表操作

    一:数据库查询增加删除 1)mysql数据库查询:show databases MariaDB [mysql]> show databases; +--------------------+ | ...

  3. java基础23 Math类和Random类

    一.Math数学类 主要是提供很多数学的公式 1.1.Math类的常用方法 abs(int a):绝对值   ceil(double a):向上取整   floor(double a):向下取整   ...

  4. No.18 selenium学习之路之批量执行测试用例

    diascover方法,加载所有测试用例 1.discover方法里面有三个参数: -case_dir:测试用例的目录 -pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开 ...

  5. Java字符串拼接效率对比

    1.来自:http://blog.csdn.net/Zen99T/article/details/51255418 2.来自:http://blog.csdn.net/kimsoft/article/ ...

  6. django(1)安装及配置

    1.版本选择 Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3. Django 1.6.x 支持 Python 2.6.X, 2.7. ...

  7. Unix IPC之pipe

    pipe创建函数: #include <unistd.h> /* Create a one-way communication channel (pipe). If successful, ...

  8. Python 安装 pytesser 处理验证码出现的问题

    今天这个问题困扰了我好久,开始直接用 pip install pytesseract 安装了 pytesseract 然后出现了如下错误 Traceback (most recent call las ...

  9. hdu 5120(求两个圆环相交的面积 2014北京现场赛 I题)

    两个圆环的内外径相同 给出内外径 和 两个圆心 求两个圆环相交的面积 画下图可以知道 就是两个大圆交-2*小圆与大圆交+2小圆交 Sample Input22 30 00 02 30 05 0 Sam ...

  10. GridLayout 计算器

    <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android=" ...