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 前言 最 ...
随机推荐
- CentOS 6.5系统安装配置图解教程
说明: 截止目前CentOS 6.x最新版本为CentOS 6.5,下面介绍CentOS 6.5的具体安装配置过程 服务器相关设置如下: 操作系统:CentOS 6.5 64位 IP地址:192.16 ...
- 关于git托管的一些心得
GIT托管的一些心得 熟练运用软件进行GIT托管的好处 在上一周的学习中,我提出来了一个疑惑,就是为什么一定要用软件托管而不选择web托管,在这周的学习中,我通过实践体会到了一些运用软件托管的好处: ...
- Python面试题 —— 获取列表中位数
中位数是一个可将数值集合划分为相等的上下两部分的一个数值.如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数:如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位 ...
- org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 > number of parameters, which is 0).;
sql有误,一般是 sql语句少了问号.
- angular实现了一个简单demo,angular-weibo-favorites
前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...
- jQuery问题:$XXX is not a function
用火狐浏览器打开,js代码一段不执行,F12以后看见下面的错误: 网上查看说是jQuery文件引用的问题,把jQuery.js引入语句修改了一下,果然没有错了. 我原来的引用语句是:<scrip ...
- windows 7 + vs2010 sp1编译 x64位版qt4
由于qt官方没有发布预编译的64位版qt4,要使用64位版qt4,只能自己编译,编译过程如下: 1,下载源码并解压到D:\qt-src\qt-everywhere-opensource-src-4.8 ...
- 我的第二个app上线:术购管家
忙了两周写完的app,终于发布了,可是等上线竟然等了两周多,今天终于上线了,一路顺畅,没有被打回过...
- [POJ3177]Redundant Paths(双联通)
在看了春晚小彩旗的E技能(旋转)后就一直在lol……额抽点时间撸一题吧…… Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Tota ...
- java网络编程基础
前言 通过网络进行数据传输时,一般使用TCP/UDP进行数据传输.但是两个的区别就是TCP可靠,UDP不可靠.两个的共同之处就是都需要建立socket套接字,将IP地址和端口port进行绑定.但是服务 ...