try
{
bytes[] bt = xmlStr.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(bt);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(bais);
}
catch(Exception)
{
e.printStackTrace();
}
{
bytes[] bt = xmlStr.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(bt);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(bais);
}
catch(Exception)
{
e.printStackTrace();
}
StringReader streader= new StringReader(sr);
InputSource iSrc = new InputSource(streader);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();//建立DOM工厂,形成DOC文件
doc=builder.parse(iSrc);//对文件进行解析
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.text.*;
import java.io.*;public class test { public test() {
}
private void getxml(String str){
Element ele ;
Element elenest;
try{
SAXBuilder sax = new SAXBuilder();
String sxmlstr = "<root>" + str +"</root>" ;
Document doc=sax.build(new ByteArrayInputStream(str.getBytes()));
//Document doc =sax.build(new StringBufferInputStream(str));
ele = doc.getRootElement() ;
if( ele.removeChildren() ){
elenest = new Element("author");
elenest.addContent("Center");
ele= ele.addContent(elenest); elenest = new Element("promotionno");
elenest.addContent("9999");
ele= ele.addContent(elenest); elenest = new Element("promotionname");
elenest.addContent("aaaa");
ele= ele.addContent(elenest); elenest = new Element("startdate");
elenest.addContent("2002/12/17");
ele= ele.addContent(elenest); elenest = new Element("enddate");
elenest.addContent("2002/12/19");
ele= ele.addContent(elenest); elenest = new Element("discountmode");
elenest.addContent("AllDay");
ele= ele.addContent(elenest);
}
System.out.print("new XML File-----------> ");
XMLOutputter xmloutput = new XMLOutputter();
xmloutput.output(ele,System.out);
}
catch(Exception e){
e.printStackTrace();
}
} private String readxml(File file){
int BUFFER = 2048;
String fileCon="";
String fileContent;
try{
DataInputStream in = new DataInputStream(
new BufferedInputStream(
new FileInputStream(file)));
byte data[] = new byte[BUFFER];
int count;
while((count = in.read(data, 0,BUFFER)) != -1 ) {
fileContent = new String(data,0,count);
fileCon = fileCon + fileContent;
fileContent ="";
}
in.close() ;
}catch(Exception e) {
e.printStackTrace();
}Finally:
return fileCon.trim();
}
/**
*
* @param arg
*/
public static void main(String[] arg){
test mytest = new test();
String filetext = mytest.readxml(new File("..\\test.xml"));
System.out.println("old XML File-----------> "+filetext);
mytest.getxml(filetext);
}
}
另外忘了告诉你,好像在jbuilder里不会提示出错,错误提示是在tomcat里出现的。
org.jdom.JDOMException: Error on line 1: org.apache.crimson.parser/P-076 Unconvertible UTF-8 character beginning with 0x88
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:407)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:428)
at com.hzfuji.jwc.promotion.PromotionProc.updatexml(PromotionProc.java:1
110)
at com.hzfuji.jwc.promotion.PromotionProc.outFileXML(PromotionProc.java:
736)
能解决吗?麻烦你了,谢谢!
<reserveitem index="1"><author>Center</author><promotionno>021217132033</promotionno><promotionname>aaaa</promotionname><startdate>2002/12/01</startdate><enddate>2002/12/02</enddate><discountmode>TimeService</discountmode></reserveitem>