请用java解析下xml
Java XML简介
XML(EXtensible Markup Language) 可扩展标记语言
可以说是一个文本文件
作用数交互 配置应用程序
Xml解析技术
三种方式
Dom 文档数据结构 多次访问 占用资源多 一次性将所有的节点
一次性都都去到内存中
Sax
事件的解析 占用资源少
Dom4j
非常优秀的 功能 强大 开源的
第一种解析方式 下面代码呢是Dom 的集中增删改的 样本
Dom解析xml 导报org.w3c.dom
写写代码吧!!!
第一步:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //建立一个工厂 因为他是一个抽象的类 所有呢他不能new自己所以呢 只能点到自己的静态方法
第二步:
DocumentBuilder buile = factory = factory.newDocumentBuilder();
第三步:
Document docuent =buile.parse(“”);//填写的呢是解析xml的具体地址
第四步:
//根据节点 进行数据解析
NodeListt list = document.getElementsByTayName(“book”); //获取节点
//NodeList 是一个集合 所以呢他又他的长度 list.getLength();
那么我们呢就遍历他的的节点并打印出出来
第四步:
For(int i = o ;i<list.getLength();i++){
Element book = (Element)List.item(i);
String attribut = book.getAttribute(“typeId”); //寻找节点的参数吧 不知道怎么说
String bookId = book.getElenmentsByTagName().item(0).getTextcintent();
//然后呢用system打印出来 这样呢xml就写出来了
System.out.println(attribut );
}
package ioDomeTwo; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
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.Node;
import org.w3c.dom.NodeList; public class MyMain {
public static void main(String[] args) throws Exception { } public static void sadf() throws Exception{ DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//创建一个工厂
DocumentBuilder builde = factory.newDocumentBuilder();
Document document = builde.parse("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml");
//System.out.println(document);//打印内存地址
//根据xml节点 数据解析
NodeList list = document.getElementsByTagName("book");//获取节点
for (int i = 0; i < list.getLength(); i++) {
Element book = (Element)list.item(i);
String attribut = book.getAttribute("typeId");
String bookId = book.getElementsByTagName("bookId").item(0).getTextContent();
String bookName = book.getElementsByTagName("bookName").item(0).getTextContent();
String bookPrice = book.getElementsByTagName("bookPrice").item(0).getTextContent();
String bookAuthor = book.getElementsByTagName("bookAuthor").item(0).getTextContent();
System.out.println(attribut);
System.out.println(bookId);
System.out.println(bookName);
System.out.println(bookPrice);
System.out.println(bookAuthor);
System.out.println("--------------");
}
}
//增加
public static void asf() throws Exception{
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//创建一个工厂
DocumentBuilder builde = factory.newDocumentBuilder();
Document document = builde.parse("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml");
//构造个节点
Element book = document.createElement("book");
book.setAttribute("typeid", "3");
Element bookId = document.createElement("bookId");
book.setTextContent("003");
Element bookName = document.createElement("bookName");
book.setTextContent("西游记");
Element bookPrice = document.createElement("bookPrice");
book.setTextContent("15.8");
Element bookAuthor = document.createElement("bookAuthor");
book.setTextContent("吴承恩");
book.appendChild(bookId);
book.appendChild(bookName);
book.appendChild(bookPrice);
book.appendChild(bookAuthor);
//将book节点和整篇文档建立关联
document.getElementsByTagName("books").item(0).appendChild(book);
//传输工程
TransformerFactory transformFactory = TransformerFactory.newInstance();
//传输器
Transformer transformer = transformFactory.newTransformer();
Source source = new DOMSource(document);
Result resule= new StreamResult("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml");
transformer.transform(source, resule);
System.out.println("ok");
} //修改
public static void upder() throws Exception{
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//创建一个工厂
DocumentBuilder builde = factory.newDocumentBuilder();
Document document = builde.parse("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml"); Element book = (Element)document.getElementsByTagName("books").item(2);
book.getElementsByTagName("bookPrice").item(0).setTextContent("99");
//传输工程
TransformerFactory transformFactory = TransformerFactory.newInstance();
//传输器
Transformer transformer = transformFactory.newTransformer();
Source source = new DOMSource(document);
Result resule= new StreamResult("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml");
transformer.transform(source, resule);
System.out.println("ok");
}
//删除
public static void remve() throws Exception{
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();//创建一个工厂
DocumentBuilder builde = factory.newDocumentBuilder();
Document document = builde.parse("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml"); Element book = (Element)document.getElementsByTagName("books").item(2);
document.getElementsByTagName("books").item(0).removeChild(book);
//传输工程
TransformerFactory transformFactory = TransformerFactory.newInstance();
//传输器
Transformer transformer = transformFactory.newTransformer();
Source source = new DOMSource(document);
Result resule= new StreamResult("E:/eclipseSpace/javaDome/src/ioDomeTwo/DomeOne.xml");
transformer.transform(source, resule);
System.out.println("ok");
}
}
请用java解析下xml的更多相关文章
- Java解析Soap XML
package com.jstrd.tipstock.webservice.jt.base; import java.io.ByteArrayInputStream; import java.util ...
- Java 解析自定义XML文件
这里我用 maven项目 作为 演示 配置pom.xml文件 完整的pom.xml文件信息 <?xml version="1.0" encoding="UTF-8& ...
- Java解析XML文档——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...
- XML基础+Java解析XML +几种解析方式的性能比较
XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...
- java解析XML(转载)
使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的 ...
- java解析XML文件
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...
- Java眼中的XML--文件读取--2 应用SAX方式解析XML
1.获取一个SAXParserFactory的实例.2.通过factory获取SAXParser实例. 3.新建一个包和继承自DefaultHandler的类. 因为SAX遍历方式,比如便利一个节 ...
- java解析XML几种方式
第一种:DOM. DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序 ...
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
随机推荐
- ECharts柱状图
首先我们要先去Echarts 官网 根据自己需要的版本进行下载下载 下载完成后,我们在项目中引入echarts 随后创建容器来存放我们要添加的柱状图 容器创建完毕我们需要在js中设置他的属性和值 此配 ...
- 简要log4j配置
若排版紊乱可查看我的个人博客原文地址 1. 配置效果 下面的log4j日志配置最终能达到的效果是对于全局日志可以根据级别输入到对应级别的日志文件中,注意低级别的日志文件会同时包含高级别的日志信息,例如 ...
- oralce执行计划
看懂Oracle执行计划 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing… 一:什么是Oracle执行计划? 执行计划是一条查询语句在 ...
- 查询总耗CPU最多与平均耗CPU最多的SQL语句
总耗CPU最多的前20个SQL total_worker_time AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time AS ...
- Windows10 安装QT问题
在网上download qt-opensource-windows-x86-winrt-msvc2013-5.8.0.exe 版本安装完成后,New “Qt Widgets application” ...
- 【转载】IL指令集
转载自:http://www.cnblogs.com/knowledgesea/p/5461040.html 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加 ...
- websocket的属性readyState
webSocket的readyState属性用来定义连接状态,该属性的值有下面几种: 0 :对应常量CONNECTING (numeric value 0), 正在建立连接连接,还没有完成.The c ...
- Blinn-Phong模型
最近在看基础光照模型,比较感兴趣的是高光反射模型,有下列两种: 1.Phong模型 R = 2*N(dot(N, L)) - L specular = lightColor * SpecularCol ...
- JAVA字符串的常见处理和操作
1.纯数字字符串补0为指定位,格式化输出(例如00482这样) 使用String.format处理: int mNumber = 1; // 0 代表前面补充0 // 4 代表长度为4 // d 代表 ...
- 从零开始写自己的PHP框架系列教程[前言]
我觉得程序员进步的理由:多看->多写->多总结 我自我介绍下,我不是程序员,但是我爱编程,作为业余程序员自己写框架让人感到兴奋的,目前有很多框架(js有jQuery.Express.soc ...