你需要先遍历所有节点,然后再对得到的list进行过滤,取得文本值为11的记录
解决方案 »
- 关于ssh电子商务网站数据库问题。
- Jasperreports求助~ 如何控制打印份数
- 求struct中关于图片上传和下载的一个完整下例子
- 重复提交
- ssh问题
- 为什么找不到javax.servlet.*和javax.servlet.http.*这两个包?
- 这个相对路径应该怎样设?
- 请教JSP/SERVLET的编程高手!!!!!!!!!!!
- 求助!在IE10下select标签渲染方式的问题
- org.springframework.beans.factory.BeanCreationException
- 《网络系统开发实例精粹(JSP版)》书中实例:科技企业信息管理系统的问题
- socket 内网传数据正常,外网传数据错误。。传的数据乱了。。导致无法解密。。。
<forbid>
<startday>2008-01-01</startday>
<endday>2008-07-19</endday>
<province>1</province>
<university>1</university>
<number>10</number>
<number_out></number_out>
</forbid>
这个是我的XML。凡是没有现成的,看看你就知道了,差不多。下面是我自己写的
有读 写 和新建的功能
package com.xxxxx.platform.xxxxx.utils;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;import com.xxxxx.platform.xxxxx.utils.HandupInitialiser.xxxxx;public class RWXml { private final static Logger _logger = Logger.getLogger(FtpClientUtil.class);
public void setXMLParameter(String title,String key,String value,String filepath){
HttpServletRequest request = ServletActionContext.getRequest();
String path=request.getSession().getServletContext().getRealPath("");
path=path+filepath;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(path));
/*
* XML文件操作
*/
/** 过得要插入的节点 */
String nod = title+"/"+key;
/** 定位节点 */
List list = document.selectNodes(nod);
Iterator iter = list.iterator();
if(iter.hasNext()){
Element Element = (Element)iter.next();
Element.setText(value);
}
try{
/** 将document中的内容写入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(path)));
writer.write(document);
writer.close();
}catch(Exception ex){
ex.printStackTrace();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
public String getXMLParameter(String title,String key,String filepath){ HttpServletRequest request = ServletActionContext.getRequest();
String path=request.getSession().getServletContext().getRealPath("");
path=path+filepath;
String value=new String();
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(path));
String nod = title+"/"+key; List list = document.selectNodes(nod);
Iterator iter = list.iterator();
while(iter.hasNext()){
Element Element = (Element)iter.next();
value = Element.getText();
}
}catch(Exception e){
e.printStackTrace();
}
return value;
}
/**
* 生成XML文件
*/
public void creatXML(String remoteFile,String home_url){
String fielname = "_downfiledXML.xml";
_logger.info("home_url="+home_url);
String url = home_url+fielname;
File f = new File(url);
Date date = new Date();
String date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
if(!f.exists()){
Document document = DocumentHelper.createDocument();//创建Document对象
Element catalogElement = document.addElement("datas");//创建节点名为"datas"的一级节点
Element book = catalogElement.addElement("book");//在一级节点"datas"下创建节点名为"book"的二级节
// book.addAttribute("id",i+"");//在"book"节点上加一个属性名为"bookid"值为bookid的属性
Element dates = book.addElement("date");//在"book"下创建节点名为"lookCount"的节点
dates.setText(date1);
Element urls = book.addElement("url");
urls.setText(remoteFile);
XMLWriter output;//输出流写XML文件
try {
OutputFormat format = new OutputFormat(" ", true, "GB2312");
output = new XMLWriter(new FileWriter(new File(url)), format);
output.write(document);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}else{
SAXReader saxReader = new SAXReader();
Document document = null;
try {
document = saxReader.read(new File(url));
} catch (DocumentException e1) {
e1.printStackTrace();
}
Element rootElement =(Element)document.getRootElement();//获取XML的根节点
Element book = rootElement.addElement("book");//增加book节点
// book.addAttribute("id",(i++)+"");//在"book"节点上加一个属性名为"bookid"值为bookid的属性
Element dates = book.addElement("date");//在"book"下创建节点名为"lookCount"的节点
dates.setText(date1);
Element urls = book.addElement("url");
urls.setText(remoteFile);
XMLWriter output;
try{
OutputFormat format = new OutputFormat("", true, "GB2312");
output = new XMLWriter(new FileWriter(new File(url)), format);
output.write(document);
output.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}调用方法:
在CLASS中: private RWXml wa = new RWXml();String value = wa.getXMLParameter(title, nod,filepath); //title 是主节点 ,nod 是要查询的节点 filepath 是XML的存储地址,我是用相对地址
// /WEB-INF/write.xml
String value = wa.setXMLParameter(title, nod, insert_value, filepath);//insert_value 是要插入的值注意,所有的参数都是String 其他的类型要转换后再使用。希望能帮到你