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的更多相关文章

  1. Java解析Soap XML

    package com.jstrd.tipstock.webservice.jt.base; import java.io.ByteArrayInputStream; import java.util ...

  2. Java 解析自定义XML文件

    这里我用 maven项目 作为 演示 配置pom.xml文件 完整的pom.xml文件信息 <?xml version="1.0" encoding="UTF-8& ...

  3. Java解析XML文档——dom解析xml

    一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...

  4. XML基础+Java解析XML +几种解析方式的性能比较

    XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...

  5. java解析XML(转载)

    使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的 ...

  6. java解析XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  7. Java眼中的XML--文件读取--2 应用SAX方式解析XML

    1.获取一个SAXParserFactory的实例.2.通过factory获取SAXParser实例.  3.新建一个包和继承自DefaultHandler的类.  因为SAX遍历方式,比如便利一个节 ...

  8. java解析XML几种方式

    第一种:DOM. DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序 ...

  9. Java 解析 XML

    Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...

随机推荐

  1. Apache代理转发http到https

    site.conf ProxyPass /maps https://maps.googleapis.com/maps LoadModule proxy_module modules/mod_proxy ...

  2. spring boot hello world

    本文讲解初始用户搭建spring boot 工程. 新建工程目录结构: application.java放在最外层的包目录里 先添加pom.xml的依赖包: <project xmlns=&qu ...

  3. java线程入门一

    线程优先级: 在JAVA线程中,通过一个int型变量priority来控制线程优先级,线程的有限机为1-10,默认为5,优先级高的线程获得的运行时间要高于优先级低的线程.但这只是一个提示,操作系统和J ...

  4. Linux内核数据结构之kfifo详解

    本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First ...

  5. react系列笔记:第三记-redux-saga

    github : https://github.com/redux-saga/redux-saga 文档:https://redux-saga.js.org/ redux-saga:  redux中间 ...

  6. SQL-59 按照salary的累计和running_total,其中running_total为前两个员工的salary累计和,其他以此类推。

    题目描述 按照salary的累计和running_total,其中running_total为前两个员工的salary累计和,其他以此类推. 具体结果如下Demo展示..CREATE TABLE `s ...

  7. 关于Unity3D使用时Scene视图清楚,Game视图不清楚的问题

    1.自己不知道什么时候,将LowResolutioinAspectRatios给勾上了, 2.同样的Scale值大于1的时候也会造成模糊,但这个好像比1好发现一点

  8. CC2640蓝牙芯片开发备记

    server ,characteristic UUID ,handle sever ,一个工程里可以有多个服务,按键服务,心率计服务,马达服务. characteristic , 一个服务可以有多个的 ...

  9. 【转】Android-Input Getevent

    https://source.android.com/devices/input/getevent Getevent getevent 工具可在设备上运行,并可提供关于输入设备和内核输入事件的实时转储 ...

  10. 最新工控\建模仿真\组态\监控集成开发平台源码解决方案2019 ---所有VC++源码100%提供!

    使用E-Form++可视化企业版本,构建属于自己的专业工控.建模仿真. 监控组态.培训仿真平台! -- 100%源码 (全部采用VC++/MFC编写,支持.NET, Java, Web, Delphi ...