请用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的标签,属性和文本等元素都封装成树的节点对象 优点 ...
随机推荐
- sql查询,更新,删除,操作。
UPDATE ht_plan_triptime pptSET ppt.lock_status = '1'WHERE ppt.lock_status <> '1' AND ppt.pl ...
- 用tensorflow实现最简单的神经网络
import tensorflow as tfimport numpy as np def add_layer(inputs,in_size,out_size,activation_function= ...
- Tomcat基本配置
第二十六课 Tomcat基本配置 目录 一. Tomcat介绍 二. 安装jdk 三. 安装Tomcat 四. 配置Tomcat监听80端口 五. 配置Tomcat虚拟主机 六. Tomcat日志 七 ...
- Hyperledger Fabric 建立一个简单网络
Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sa ...
- Restful设计思想
1.REST的架构设计 代表性状态传输(Representational State Transfer,REST)在Web领域已经得到了广泛的接受,是基于SOAP和Web服务描述语言(Web Serv ...
- Java的URL类(一)
转:https://www.cnblogs.com/blackiesong/p/6182038.html Java的URL类(一) Java的网络类可以让你通过网络或者远程连接来实现应用.而且,这个平 ...
- C# array与arraylist区别及获取sql字段名
array与arraylist的区别: 1. Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的.如果更改了 ArrayList.Capacity 属性的值,则自动进行内 ...
- 运动控制之一_PID控制理论
PID算法是早期发展起来的控制算法,该算法因其简单.鲁棒性强且可靠性高而被广泛地应用于过程控制和运动控制中. 常规的PID控制系统原理框图如下所示: PID控制系统原理图 误差信号Err(t)输入到控 ...
- Some notes in Stanford CS106A(3)
1.If ( str1==str2 ) means if str1 and str2 are refers to the same OBJECT. But when compare string , ...
- 华莱士的 第一个python程序之(用户登录)
Name = "shangzb"password = 43while True: _Name = input("Name:") if _Name == Name ...