请用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的标签,属性和文本等元素都封装成树的节点对象 优点 ...
随机推荐
- tf.contrib.slim
https://blog.csdn.net/mao_xiao_feng/article/details/73409975
- jvm参数及分析工具
-Xmx4G 设置堆的最大内存大小为4GB,也可通过-XX:MaxHeapSize=4GB进行设置 -Xms256m 设置堆的初始内存大小为256兆,如果未设置此选项,则初始大小将设置为新生代和年老代 ...
- pgmpy安装
1.anaconda安装,可能在cmd中输入conda会报错,是因为在安装的时候没有配置好环境变量,在安装的时候有一个框框没选(当时是not recommand), 解决办法:需要在系统环境变量中添加 ...
- Linux 系统运行命令 > 查看系统信息
查看系统运行状态 一 . 查看硬件信息 - 1. cpu信息(可以通过find,whereis,locate查出路径) #cat /proc/cpuinfo 2 . 内存信息:meminfo(可以用c ...
- Centos6.5 安装 RabbitMQ 3.7.11
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STO ...
- SQA计划与系统测试
(一)目的 本计划的目的是定义我们该小组所做的“爱上长大”项目的SQA任务和职责,在项目过程中应遵循的流程.规范和约定等,以确保软件质量得到维持. (二)范围 本计划应用于“爱上长大”项目开发的整个生 ...
- LimeSDR 无线信号重放攻击和逆向分析
原文链接:https://mp.weixin.qq.com/s/TBYKZR3n3ADo4oDkaDUeIA
- full visualization vs part virtualization
https://stackoverflow.com/questions/21462581/what-is-the-difference-between-full-para-and-hardware-a ...
- 设置Ubuntu右侧显示扩展屏幕。。。
sudo xrandr --output VGA1 --right-of LVDS1 --auto
- C# 延迟函数
#region 延迟函数 public static bool Delay(int delayTime) { DateTime now = DateTime.Now; int s; do { Time ...