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>
积跬步以致千里,积小流以成江海。
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!
2016年5月之前的博文发布于51cto,链接地址:shamrock.blog.51cto.com
2016年5月之后博文发布与cnblogs上。
Github地址 https://github.com/umgsai
Keep moving~!!!

浙公网安备 33010602011771号