StringBuffer中的中文处理问题? 跟进去看一下book.getChild().getTextTrim()返回的值是否有问题,StringBuffer本身对中文的支持很好啊。有可能getTextTrim()这个方法有问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To: joincsdn(云) ( ) 信誉:100 代码:目的:更改指定id下面readid的值,可以读出( String readid_text=el_two.getChildText("readid");),但是改不起来public void ChangeReadId(String fn,String id){ //指定DATATIME下面的READID Document doc = null; File file = new File(fn); if(file.exists()){ SAXBuilder sb = new SAXBuilder(); try{ doc = sb.build(file); }catch(JDOMException e){ System.out.println("异常:"+e.getMessage()); }catch(Exception e){ System.out.println(e.getMessage()); } List return_list = new ArrayList();//定义返回对象 Element root = doc.getRootElement();//获得根节点,即一级元素 List list_two = root.getChildren();//获得根节点下级元素列表,即二级元素 for(int i=0;i<list_two.size();i++){ Element el_two = (Element)list_two.get(i);//类型转换 List list_three = el_two.getChildren("DateTime");//获得元素名为id的list对象 for(int j=0;j<list_three.size();j++){ Hashtable ht = new Hashtable();//存放数据 Element el_three = (Element)list_three.get(j);//类型转换 String el_three_text = el_three.getText();//获得元素的内容 //System.out.println(el_three.getName()+"----"+el_three_text); if(el_three_text.equals(id)){ //****************************** Element readid=el_two.getChild("readid"); String readid_text=el_two.getChildText("readid"); readid.setText("1111"); return; //******************************** } } } }} to:To: joincsdn(云) ( ) 信誉:100 在修改完之后还需要重写xml文件,就是把修改过的doc重写到xml文件如何从新写入?? public void ChangeReadId(String fn, String id) { //指定DATATIME下面的READID Document doc = null; File file = new File(fn); if (file.exists()) { SAXBuilder sb = new SAXBuilder(); try { doc = sb.build(file); } catch (JDOMException e) { System.out.println("异常:" + e.getMessage()); } catch (Exception e) { System.out.println(e.getMessage()); } List return_list = new ArrayList(); //定义返回对象 Element root = doc.getRootElement(); //获得根节点,即一级元素 List list_two = root.getChildren(); //获得根节点下级元素列表,即二级元素 for (int i = 0; i < list_two.size(); i++) { Element el_two = (Element) list_two.get(i); //类型转换 List list_three = el_two.getChildren("time"); //获得元素名为id的list对象 for (int j = 0; j < list_three.size(); j++) { Element el_three = (Element) list_three.get(j); //类型转换 System.out.println(el_three); String el_three_text = el_three.getValue(); //获得元素的内容 System.out.println(el_three_text); //System.out.println(el_three.getName()+"----"+el_three_text); if (el_three_text.equals(id)) { //****************************** Element readid = el_two.getChild("id"); String readid_text = el_two.getChildText("id"); readid.setText("1111"); //return; //设置输出格式 Format f = Format.getRawFormat(); f.setIndent(""); f.setEncoding("GBK"); XMLOutputter output = new XMLOutputter(f); //XMLOutputter output = new XMLOutputter(" ",true,"GBK"); try { output.output(doc, new FileOutputStream(fn)); } catch (Exception e) { System.out.println(e.getMessage()); } //******************************** }else{ System.out.println("要修改的记录不存在!"); } } } } } public static void main(String[] args) { HelloXML helloXml = new HelloXML(); //System.out.println(helloXml.CheckId("D:\\project\\XML\\project\\project\\test.xml","4")); //helloXml.EditXML("D:\\project\\XML\\project\\project\\test.xml","6"); helloXml.ChangeReadId("D:\\project\\XML\\project\\project\\test.xml","01-6-23 18:26:56"); //System.out.println(ok); }xml文件:<?xml version="1.0" encoding="GBK"?><lists> <list> <id>1</id> <username>冯奎</username> <time>01-4-23 18:26:56</time> <homepage>http://www.getjob.com.cn</homepage> <email>[email protected]</email> <context>我的留言</context> </list> <list> <id>2</id> <username>妞妞</username> <time>01-6-23 18:26:56</time> <homepage>http://www.neworiental.org</homepage> <email>[email protected]</email> <context>测试留言</context> </list> <list> <id>4</id> <username>4</username> <time>4</time> <hompage>4</hompage> <email>4</email> <context>4</context> </list></lists>至于一旦记录修改如何退出循环你自己处理一下吧! java 行转列 显示 Hibernate 3.3.2 共有几级缓存? EntityManager的问题。。。。。。。 在线等excel 自动转成 *.HTM 代码 Spring 整合JBPM5.4时候报错 J2ee开发平台的搭建 如何在JBOSS中把一个目录指发布为WEB目录 tomcat的发布路径怎么改? jbuilder+sybase 难道就真的没有人用过?我给100分 client端Bean可以调用Local接口的EJB吗? 帮一下小弟呀!!!帮一下小弟呀!!!关于数组的问题 struts 页面间参数的传递 --〉问题解决马上结贴!
代码:
目的:更改指定id下面readid的值,可以读出( String readid_text=el_two.getChildText("readid");),但是改不起来
public void ChangeReadId(String fn,String id){
//指定DATATIME下面的READID
Document doc = null;
File file = new File(fn);
if(file.exists()){
SAXBuilder sb = new SAXBuilder();
try{
doc = sb.build(file);
}catch(JDOMException e){
System.out.println("异常:"+e.getMessage());
}catch(Exception e){
System.out.println(e.getMessage());
}
List return_list = new ArrayList();//定义返回对象
Element root = doc.getRootElement();//获得根节点,即一级元素
List list_two = root.getChildren();//获得根节点下级元素列表,即二级元素
for(int i=0;i<list_two.size();i++){
Element el_two = (Element)list_two.get(i);//类型转换
List list_three = el_two.getChildren("DateTime");//获得元素名为id的list对象
for(int j=0;j<list_three.size();j++){
Hashtable ht = new Hashtable();//存放数据
Element el_three = (Element)list_three.get(j);//类型转换
String el_three_text = el_three.getText();//获得元素的内容
//System.out.println(el_three.getName()+"----"+el_three_text);
if(el_three_text.equals(id)){
//******************************
Element readid=el_two.getChild("readid");
String readid_text=el_two.getChildText("readid");
readid.setText("1111");
return;
//********************************
}
}
}
}
}
To: joincsdn(云) ( ) 信誉:100 在修改完之后还需要重写xml文件,就是把修改过的doc重写到xml文件
如何从新写入??
//指定DATATIME下面的READID
Document doc = null;
File file = new File(fn);
if (file.exists()) {
SAXBuilder sb = new SAXBuilder();
try {
doc = sb.build(file);
}
catch (JDOMException e) {
System.out.println("异常:" + e.getMessage());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
List return_list = new ArrayList(); //定义返回对象
Element root = doc.getRootElement(); //获得根节点,即一级元素
List list_two = root.getChildren(); //获得根节点下级元素列表,即二级元素
for (int i = 0; i < list_two.size(); i++) {
Element el_two = (Element) list_two.get(i); //类型转换
List list_three = el_two.getChildren("time"); //获得元素名为id的list对象
for (int j = 0; j < list_three.size(); j++) {
Element el_three = (Element) list_three.get(j); //类型转换
System.out.println(el_three);
String el_three_text = el_three.getValue(); //获得元素的内容
System.out.println(el_three_text);
//System.out.println(el_three.getName()+"----"+el_three_text);
if (el_three_text.equals(id)) {
//******************************
Element readid = el_two.getChild("id");
String readid_text = el_two.getChildText("id");
readid.setText("1111");
//return;
//设置输出格式
Format f = Format.getRawFormat();
f.setIndent("");
f.setEncoding("GBK");
XMLOutputter output = new XMLOutputter(f);
//XMLOutputter output = new XMLOutputter(" ",true,"GBK");
try {
output.output(doc, new FileOutputStream(fn));
}
catch (Exception e) {
System.out.println(e.getMessage());
}
//********************************
}else{
System.out.println("要修改的记录不存在!");
}
}
}
}
} public static void main(String[] args) {
HelloXML helloXml = new HelloXML();
//System.out.println(helloXml.CheckId("D:\\project\\XML\\project\\project\\test.xml","4"));
//helloXml.EditXML("D:\\project\\XML\\project\\project\\test.xml","6");
helloXml.ChangeReadId("D:\\project\\XML\\project\\project\\test.xml","01-6-23 18:26:56");
//System.out.println(ok);
}
xml文件:
<?xml version="1.0" encoding="GBK"?>
<lists>
<list>
<id>1</id>
<username>冯奎</username>
<time>01-4-23 18:26:56</time>
<homepage>http://www.getjob.com.cn</homepage>
<email>[email protected]</email>
<context>我的留言</context>
</list>
<list>
<id>2</id>
<username>妞妞</username>
<time>01-6-23 18:26:56</time>
<homepage>http://www.neworiental.org</homepage>
<email>[email protected]</email>
<context>测试留言</context>
</list>
<list>
<id>4</id>
<username>4</username>
<time>4</time>
<hompage>4</hompage>
<email>4</email>
<context>4</context>
</list>
</lists>
至于一旦记录修改如何退出循环你自己处理一下吧!