Java操作xml文件
Bbsxml.java
public class Bbsxml {
private String imgsrc;
private String title;
private String url;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getImgsrc() {
return imgsrc;
}
public void setImgString imgsrc) { < /span>
this.imgsrc = imgsrc;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
XmlOprate.java
public class XmlOprate {
Document doc;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
NodeList imags;
String path;
public NodeList getImags() {
return imags;
}
public void setImags(NodeList imags) {
this.imags = imags;
}
/**
* 构造方法
*
* @param path
* :xml文件的路径
* @param nodes
* :要解析的xml节点名称
*/
public XmlOprate(String path) {
super();
this.path = path;
// System.out.println(System.getProperty("user.dir"));
}
/**
* 解析XML
*
* @param path
*/
public void readXml() {
try {
builder = factory.newDocumentBuilder();
Document doc = builder.parse(path);
doc.normalize();
NodeList imags = doc.getElementsByTagName("imags");
this.setImags(imags);
for (int i = 0; i < imags.getLength(); i++) {
Element link = (Element) imags.item(i);
System.out.print("imgsrc=\'#\'" /span>);
System.out.println(link.getElementsByTagName("imgsrc").item(0)
.getFirstChild().getNodeValue());
System.out.print("title: ");
System.out.println(link.getElementsByTagName("title").item(0)
.getFirstChild().getNodeValue());
System.out.print("url: ");
System.out.println(link.getElementsByTagName("url").item(0)
.getFirstChild().getNodeValue());
System.out.println();
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* http://www.ablanxue.com 解析XML,返回List集合,Bbsxm
* 只是一个普通的javabean,只提供get,set的方法l,在此不写出,可自己创建了
*
* @param path
*/
public List<Bbsxml> xml() {
List<Bbsxml> list = null;
list = new ArrayList<Bbsxml>();
try {
builder = factory.newDocumentBuilder();
Document doc = builder.parse(path);
doc.normalize();
Bbsxml bbsxml = null;
NodeList imags = doc.getElementsByTagName("imags");
this.setImags(imags);
for (int i = imags.getLength() - 1; i > -1; i--) {
Element link = (Element) imags.item(i);
bbsxml = new Bbsxml();
bbsxml.setImglink.getElementsByTagName("imgsrc").item(0)
.getFirstChild().getNodeValue());
bbsxml.setTitle(link.getElementsByTagName("title").item(0)
.getFirstChild().getNodeValue());
bbsxml.setUrl(link.getElementsByTagName("url").item(0)
.getFirstChild().getNodeValue());
list.add(bbsxml);
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
/**
* addCode
*
* @param path
*/
public void addXmlCode(String imgsrc, String title, String url) {
try {
builder = factory.newDocumentBuilder();
Document doc = builder.parse(path);
doc.normalize();
Text textseg;
Element imag = doc.createElement("imags");
Element linkimgsrc = doc.createElement("imgsrc");
textseg = doc.createTextNode(imgsrc);
linkimgsrc.appendChild(textseg);
imag.appendChild(linkimgsrc);
Element linktitle = doc.createElement("title");
textseg = doc.createTextNode(title);
linktitle.appendChild(textseg);
imag.appendChild(linktitle);
Element linkurl = doc.createElement("url");
textseg = doc.createTextNode(url);
linkurl.appendChild(textseg);
imag.appendChild(linkurl);
doc.getDocumentElement().appendChild(imag);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer;
transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new java.io.File(path));
transformer.transform(source, result);
} catch (Exception e) {
}
}
/**
* delete xml code
*
* @param path
*/
public void delXmlCode() {
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
doc = builder.parse(path);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
doc.normalize();
NodeList imags = doc.getElementsByTagName("imags");
// if (imags.getLength() > 9) {
// 删除节点
Element elink = (Element) imags.item(0);
elink.removeChild(elink.getElementsByTagName("imgsrc").item(0));
elink.removeChild(elink.getElementsByTagName("title").item(0));
elink.removeChild(elink.getElementsByTagName("url").item(0));
doc.getFirstChild().removeChild(elink);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = tFactory.newTransformer();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new java.io.File(path));
try {
transformer.transform(source, result);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// }
}
public static void main(String[] args) {
XmlOprate xm = new XmlOprate("data.xml");
// xm.readXml();
// xm.addXmlCode("images/1.gif", "xuexiii", "http://www.baidu.com");
xm.delXmlCode();
}
}
data.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<imags>
<imgsrc>images/ad-02.jpg</imgsrc>
<title>java读取xml文件</title>
<url>http://www.ablanxue.com</url>
</imags>
<imags>
<imgsrc>images/1.gif</imgsrc>
<title>xuexiii</title>
<url>http://www.baidu.com</url>
</imags>
</root>
JSP页面直接操作 xml.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="org.w3c.dom.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<%
//建立一个解析器工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//获得一个具体的解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
//对XML文档进行解析,获得Document对象
Document doc = builder.parse(request.getRealPath("/")+ "WEB-INF/data.xml");
doc.normalize();
//获取所有的book元素列表
NodeList books = doc.getElementsByTagName("book");
%>
</head>
<body>
<h2>图书列表</h2>
<br>
<%
for (int i = 0; i < books.getLength(); i++) {
//获取一个book元素
Element book = (Element) books.item(i);
//以下获取book的子元素,并输出
out.print("title:");
out.println(book.getElementsByTagName("title").item(0).getFirstChild().getNodeValue());
out.print("<br>");
out.print("URL:");
out.println(book.getElementsByTagName("url").item(0).getFirstChild().getNodeValue());
out.print("<br>");
out.print("Author:");
out.println(book.getElementsByTagName("author").item(0).getFirstChild().getNodeValue());
out.print("<br>");
out.print("Date:");
Element bookdate = (Element) book.getElementsByTagName("date").item(0);
String day = book.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
String month = book.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
String year = book.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
out.println(day + "-" + month + "-" + year);
out.print("<br>");
out.print("Description:");
out.println(book.getElementsByTagName("description").item(0).getFirstChild().getNodeValue());
out.print("<br><br>");
}
%>
</body>
</html>
Java操作xml文件的更多相关文章
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- 用java操作XML文件(DOM解析方式)
XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...
- java操作XML文件--读取内容
先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类 由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问 ...
- java操作xml文件--修改节点
上一篇文章我介绍了SAX方法解析XML文件的过程,这篇文章讲解的内容是利用DOM方法修改XML文件的节点内容. 下面依然是首先贴出XML文件: <?xml version ...
- Java操作xml文件的jar包dom4j
只能解析xml文件,不能解析普通的文件 https://www.cnblogs.com/sharpest/p/7877501.html
- 更新java对xml文件的操作
//更新java在xml文件中操作的内容 public static void upda(Document doc) throws Exception{ //创建一个TransformerFactor ...
- JAVA中通过Jaxp操作XML文件基础
Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...
- # java对xml文件的基本操作
下面是简单的总结三种常用的java对xml文件的操作 1. dom方式对xml进行操作,这种操作原理是将整个xml文档读入内存总,在内存中进行操作,当xml文档非常庞大的时候就会出现内存溢出的异常,这 ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
随机推荐
- 对RESTful Web API的理解与设计思路
距离上一篇关于Web API的文章(如何实现RESTful Web API的身份验证)有好些时间了,在那篇文章中提到的方法是非常简单而有效的,我在实际的项目中就这么用了,代码经过一段时间的磨合,已经很 ...
- 在opencv3中的机器学习算法练习:对OCR进行分类
OCR (Optical Character Recognition,光学字符识别),我们这个练习就是对OCR英文字母进行识别.得到一张OCR图片后,提取出字符相关的ROI图像,并且大小归一化,整个图 ...
- 用python简单处理图片(3):添加水印
python版本:3.4 Pillow版本:3.0 一.添加文字水印 from PIL import Image, ImageDraw,ImageFont im = Image.open(" ...
- Activiti系列:为什么Activiti 5.18 的REST的api总是返回404错误
REST api可以访问了,如下 1.修改db.properties配置文件,让他访问sql server 2.在浏览器中输入如下地址,注意中间有一个service,这点和之前的不一样,在<Ac ...
- linux实践——ELF分析
一.ELF的部分结构定义 elf header(定义在/usr/include/elf.h)//64位的系统ELF文件头包括以下两个部分 #define EI_NIDENT (16) typedef ...
- 20155226田皓宇关于优秀技能经验以及c语言学习感悟和对JAVA的展望
读老师文章后关于一项优秀技能的经验有感 1.首先我自我剖析认为,我是没有哪一个方面能做到强于身边90%的人的,我只能说有些方面略强于身边的人.比如唱歌.办公软件的应用(word.excel)等.但我不 ...
- java之hashCode
package com.simope.myTest; import java.util.HashMap; import java.util.Map; public class Test20151022 ...
- 迅雷首席架构师刘智聪:微信小程序的架构与系统设计的几点观感
笔者注:本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借“大规模网络流媒体服务关键支撑技术”项目获得2015年国家科学技术进步奖二等奖,同时 ...
- 回归到最初的编程——Linux下的C编程
最近感觉有些浮躁,一方面感觉最近写公司的PHP代码倍感无聊,没有什么成就感!另一方面面对我的mac电脑中安装了诸多开发语言,倍感浮躁与困惑!同时想到这么多年来,却一直在使用PHP进行程序开发,总觉得有 ...
- RockWare RockWorks的Ollydbg调试过程及注册机(破解)思路
最近拿到了RockWorks15的安装包,可惜没有破解,试用也只能用14天.用PEiD工具察看了一下,Delphi编写的程序,竟然没加壳.本想用OllyDBG调试进去爆破一下,不意发现注册码很简单,如 ...