【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-xUpdateResolverJava.java,希望本篇文章对您学习有所帮助。
package flashRemoting.xml;
import org.xmldb.xupdate.lexus.*;
import org.xmldb.common.xml.queries.XUpdateQuery;
import java.io.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.stream.*;
import javax.
xml.transform.dom.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
public class xUpdateResolverJava {
private long timeStart;
private long timeEnd;
public String saveXUpdatedData(String documentFile, String queryStr) throws
Exception {
//解析要更新的
文档文件
Node myDocument = null;
DocumentBuilderFactory parserFactory = DocumentBuilderFactory.newInstance();
parserFactory.setValidating(false);
parserFactory.setNamespaceAware(false);
parserFactory.setIgnoringElementContentWhitespace(true);
DocumentBuilder builder = parserFactory.newDocumentBuilder();
File file = new File(documentFile);
myDocument = builder.parse(file);
System.setProperty("org.xmldb.common.xml.queries.XPathQueryFactory",
"org.xmldb.common.xml.queries.xalan2.XPathQueryFactoryImpl");
//执行更新,并返回更新所用的时间
org.xmldb.xupdate.lexus.XUpdateQueryImpl xq = new org.xmldb.xupdate.lexus.
XUpdateQueryImpl();
try {
System.err.println("开始更新......");
timeStart = System.currentTimeMillis();
xq.setQString(queryStr);
xq.execute(myDocument);
//获得将DOM
文档转化为XML文件的转换器,在JDK1.5中,
//由类TransformerFactory来实现,类Transformer实现转化API。
TransformerFactory tr = TransformerFactory.newInstance();
Transformer transformer = tr.newTransformer();
//创建一个StringWriter类实例
StringWriter sw = new StringWriter();
//创建一个StreamResult类实例,
//将StreamResult结果赋给StringWriter类实例
StreamResult sr = new StreamResult(sw);
//创建一个DOMSource类实例
DOMSource ds = new DOMSource(myDocument);
//将DOMSource类实例赋给StreamResult类实例
transformer.transform(ds, sr);
//将StringWriter类实例转化为字符串
System.err.println(sw.toString());
sw.close();
timeEnd = System.currentTimeMillis();
System.err.println("完成更新操作,共花费" + (timeEnd - timeStart) + " 毫秒......");
}
catch (Exception e) {
return e.toString();
}
return "完成更新操作,共花费" + (timeEnd - timeStart) + " 毫秒......";
}
}