try {
SAXBuilder builder = new SAXBuilder(); // 构造一个XML解散析器 String condition_df = "http://10.180.10.108:7001/docroot/Servlet_ETLData_Impl?JKID=4&ETLID=4&Conditions="
+ customer_id + "," + query_date + "," + query_year; String condition_qf = "http://10.180.10.108:7001/docroot/Servlet_ETLData_Impl?JKID=1&ETLID=1&Conditions="
+ customer_id; url_df = new URL(condition_df); // 用webservice地址构造一个URL对象 urlconn_df = url_df.openConnection(); // 打开这个http连接 dis_df = new DataInputStream(urlconn_df.getInputStream()); // 用DataInputStream把从webservice获得的数据流进行格式化 Document doc_df = builder.build(dis_df); // 构造一个查询电费的Document对象 Element root_df = doc_df.getRootElement(); // 获得查询电费的根元素 List child = root_df.getChildren(); // 获得此根元素下的所有元素 Element resqcode_element = (Element) child.get(3); // 获得根元素下的第4个元素(元素是从0开始)。也就是ResqCode元素 // 判断成功与否,1表示成功
if (Integer.parseInt(resqcode_element.getText()) != 1) {
return null;
} Element query_element = (Element) child.get(2); // 获得根元素下的第3个元素(元素是从0开始)。也就是QryLst元素 List query_sub_element = query_element.getChildren(); // 获得QryLst元素下所有的子元素 Element pb_row_element = (Element) query_sub_element.get(0); // 获得Pb_Row1元素下的第1个元素(元素是从0开始)。也就是Pb_Row1元素 List pb_row_sub_element = pb_row_element.getChildren(); // 获得Pb_Row1元素下所有的子元素 querylist_vector = new Vector(37); // 实例化一个容量为37的Vector对象 // 用迭代器对Pb_Row1元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator = pb_row_sub_element.iterator(); while (iterator.hasNext()) {
Element myvalue = (Element) iterator.next();
querylist_vector.add(new String(myvalue.getText().toString()));
} Element resptime_element = (Element) child.get(4); // 获得根元素下的第5个元素(元素是从0开始)。也就是RespTime元素(执行时间) resptime = resptime_element.getText(); Element respdate_element = (Element) child.get(5); // 获得根元素下的第6个元素(元素是从0开始)。也就是RespDate元素(执行日期) respdate = respdate_element.getText(); Element colnamelist_element = (Element) child.get(6); // 获得根元素下的第7个元素(元素是从0开始)。也就是ColNameLst元素 List colnamelist_sub_element = colnamelist_element.getChildren(); // 获得ColNameLst元素下所有的子元素 colnamelist_vector = new Vector(37); // 实例化一个容量为32的Vector对象 // 用迭代器对ColNameLst元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator_colnamelist = colnamelist_sub_element.iterator(); while (iterator_colnamelist.hasNext()) {
Element myvalue_colnamelist = (Element) iterator_colnamelist
.next();
colnamelist_vector.add(new String(myvalue_colnamelist.getText()
.toString()));
} url_qf = new URL(condition_qf); // 用webservice地址构造一个URL对象 urlconn_qf = url_qf.openConnection(); // 打开这个http连接 dis_qf = new DataInputStream(urlconn_qf.getInputStream()); // 用DataInputStream把从webservice获得的数据流进行格式化 Document doc_qf = builder.build(dis_qf); // 构造一个查询总欠费的Document对象 Element root_qf = doc_qf.getRootElement(); // 获得查询总欠费的根元素 List child_qf = root_qf.getChildren(); // 获得查询总欠费的根元素下的所有字元素 Element querylist_qf = (Element) child_qf.get(2); // 获得查询总欠费根元素下第3个元素,也就是QryLst元素 List querylist_qf_sub = querylist_qf.getChildren(); // 获得QryLst元素下所有字元素。 Element pb_row = (Element) querylist_qf_sub.get(0); // 获得QrtLst元素下第一个元素,也就是Pb_Row元素 List pb_row_sub = pb_row.getChildren(); // 获得Pb_Row元素下所有的子元素 Element qf_element = (Element) pb_row_sub.get(1); if ((String) querylist_vector.elementAt(17).toString() != ""
|| querylist_vector.elementAt(17) != null) {
String query_sub = "http://10.180.4.108:7001/docroot/Servlet_ETLData_Impl?JKID=8&ETLID=7&Conditions=-1,"
+ (String) querylist_vector.elementAt(17).toString()
+ ",-1"; Document doc_query_sub = builder.build(query_sub); // 构造一个查询操作员相关信息的Document对象 Element root_query_sub = doc_query_sub.getRootElement(); // 获得查询操作员相关信息的根元素 List child_query_sub = root_query_sub.getChildren(); // 获得此根元素下的所有元素 Element resqcode_element_sub = (Element) child_query_sub.get(3); // 获得根元素下的第4个元素(元素是从0开始)。也就是ResqCode元素 // 判断成功与否,1表示成功
if (Integer.parseInt(resqcode_element_sub.getText()) != 1) {
querylist_sub_vector = null;
} else {
Element QryLst_element = (Element) child_query_sub.get(2); // 获得根元素下的第3个元素(元素是从0开始)。也就是QryLst元素 List QryLst_total = QryLst_element.getChildren(); // 获得QryLst元素下所有的子元素 Element pbrow_element = (Element) QryLst_total.get(0); // 获得Pb_Row元素下的第1个元素(元素是从0开始)。也就是Pb_Row1元素 List pbrow_sub_element = pbrow_element.getChildren(); // 获得Pb_Row元素下所有的子元素 querylist_sub_vector = new Vector(7); // 实例化一个容量为7的Vector对象 // 用迭代器对Pb_Row元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator_sub = pbrow_sub_element.iterator(); while (iterator_sub.hasNext()) {
Element myvalue = (Element) iterator_sub.next();
querylist_sub_vector.add(new String(myvalue.getText()
.toString()));
}
}
SAXBuilder builder = new SAXBuilder(); // 构造一个XML解散析器 String condition_df = "http://10.180.10.108:7001/docroot/Servlet_ETLData_Impl?JKID=4&ETLID=4&Conditions="
+ customer_id + "," + query_date + "," + query_year; String condition_qf = "http://10.180.10.108:7001/docroot/Servlet_ETLData_Impl?JKID=1&ETLID=1&Conditions="
+ customer_id; url_df = new URL(condition_df); // 用webservice地址构造一个URL对象 urlconn_df = url_df.openConnection(); // 打开这个http连接 dis_df = new DataInputStream(urlconn_df.getInputStream()); // 用DataInputStream把从webservice获得的数据流进行格式化 Document doc_df = builder.build(dis_df); // 构造一个查询电费的Document对象 Element root_df = doc_df.getRootElement(); // 获得查询电费的根元素 List child = root_df.getChildren(); // 获得此根元素下的所有元素 Element resqcode_element = (Element) child.get(3); // 获得根元素下的第4个元素(元素是从0开始)。也就是ResqCode元素 // 判断成功与否,1表示成功
if (Integer.parseInt(resqcode_element.getText()) != 1) {
return null;
} Element query_element = (Element) child.get(2); // 获得根元素下的第3个元素(元素是从0开始)。也就是QryLst元素 List query_sub_element = query_element.getChildren(); // 获得QryLst元素下所有的子元素 Element pb_row_element = (Element) query_sub_element.get(0); // 获得Pb_Row1元素下的第1个元素(元素是从0开始)。也就是Pb_Row1元素 List pb_row_sub_element = pb_row_element.getChildren(); // 获得Pb_Row1元素下所有的子元素 querylist_vector = new Vector(37); // 实例化一个容量为37的Vector对象 // 用迭代器对Pb_Row1元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator = pb_row_sub_element.iterator(); while (iterator.hasNext()) {
Element myvalue = (Element) iterator.next();
querylist_vector.add(new String(myvalue.getText().toString()));
} Element resptime_element = (Element) child.get(4); // 获得根元素下的第5个元素(元素是从0开始)。也就是RespTime元素(执行时间) resptime = resptime_element.getText(); Element respdate_element = (Element) child.get(5); // 获得根元素下的第6个元素(元素是从0开始)。也就是RespDate元素(执行日期) respdate = respdate_element.getText(); Element colnamelist_element = (Element) child.get(6); // 获得根元素下的第7个元素(元素是从0开始)。也就是ColNameLst元素 List colnamelist_sub_element = colnamelist_element.getChildren(); // 获得ColNameLst元素下所有的子元素 colnamelist_vector = new Vector(37); // 实例化一个容量为32的Vector对象 // 用迭代器对ColNameLst元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator_colnamelist = colnamelist_sub_element.iterator(); while (iterator_colnamelist.hasNext()) {
Element myvalue_colnamelist = (Element) iterator_colnamelist
.next();
colnamelist_vector.add(new String(myvalue_colnamelist.getText()
.toString()));
} url_qf = new URL(condition_qf); // 用webservice地址构造一个URL对象 urlconn_qf = url_qf.openConnection(); // 打开这个http连接 dis_qf = new DataInputStream(urlconn_qf.getInputStream()); // 用DataInputStream把从webservice获得的数据流进行格式化 Document doc_qf = builder.build(dis_qf); // 构造一个查询总欠费的Document对象 Element root_qf = doc_qf.getRootElement(); // 获得查询总欠费的根元素 List child_qf = root_qf.getChildren(); // 获得查询总欠费的根元素下的所有字元素 Element querylist_qf = (Element) child_qf.get(2); // 获得查询总欠费根元素下第3个元素,也就是QryLst元素 List querylist_qf_sub = querylist_qf.getChildren(); // 获得QryLst元素下所有字元素。 Element pb_row = (Element) querylist_qf_sub.get(0); // 获得QrtLst元素下第一个元素,也就是Pb_Row元素 List pb_row_sub = pb_row.getChildren(); // 获得Pb_Row元素下所有的子元素 Element qf_element = (Element) pb_row_sub.get(1); if ((String) querylist_vector.elementAt(17).toString() != ""
|| querylist_vector.elementAt(17) != null) {
String query_sub = "http://10.180.4.108:7001/docroot/Servlet_ETLData_Impl?JKID=8&ETLID=7&Conditions=-1,"
+ (String) querylist_vector.elementAt(17).toString()
+ ",-1"; Document doc_query_sub = builder.build(query_sub); // 构造一个查询操作员相关信息的Document对象 Element root_query_sub = doc_query_sub.getRootElement(); // 获得查询操作员相关信息的根元素 List child_query_sub = root_query_sub.getChildren(); // 获得此根元素下的所有元素 Element resqcode_element_sub = (Element) child_query_sub.get(3); // 获得根元素下的第4个元素(元素是从0开始)。也就是ResqCode元素 // 判断成功与否,1表示成功
if (Integer.parseInt(resqcode_element_sub.getText()) != 1) {
querylist_sub_vector = null;
} else {
Element QryLst_element = (Element) child_query_sub.get(2); // 获得根元素下的第3个元素(元素是从0开始)。也就是QryLst元素 List QryLst_total = QryLst_element.getChildren(); // 获得QryLst元素下所有的子元素 Element pbrow_element = (Element) QryLst_total.get(0); // 获得Pb_Row元素下的第1个元素(元素是从0开始)。也就是Pb_Row1元素 List pbrow_sub_element = pbrow_element.getChildren(); // 获得Pb_Row元素下所有的子元素 querylist_sub_vector = new Vector(7); // 实例化一个容量为7的Vector对象 // 用迭代器对Pb_Row元素下所有的子元素进行迭代,并通过循环将读出来的值入到Vector中
Iterator iterator_sub = pbrow_sub_element.iterator(); while (iterator_sub.hasNext()) {
Element myvalue = (Element) iterator_sub.next();
querylist_sub_vector.add(new String(myvalue.getText()
.toString()));
}
}
解决方案 »
- hibernate sqlquery执行结果和直接在数据库中不一致
- 必须窗口最大化以后才能显示出图片
- hibernate 二级缓存的问题~~~~~~~~~~~~~
- Hibernate Annotation 和 Spring 的初级问题 (穷人提问,没有奖励分,只有诚挚的感谢!)
- 问个JSP的问题哈??
- JSP+Tomcat 的应用系统 能不能移植到64位的服务器上?
- 【筹备开源项目】欢迎Java爱好者参加。项目很简单,特别适合于在校学习,想找机会锻炼,或想找毕业论题目的同学。
- 同一页面中有3个FORM,如何编写STRUTS的ACTIONFORM和ACTION?
- 在JAVA中如何用代码关闭一个窗体?不再使用的全局对象如何清理呢?我是新手请多指教!
- 请问如何取得SERVLET环境下WEB-INF\web.xml中所设置的INIT参数?
- 请问hibernate如何实现有'||'的查询
- Ant的propertycopy标签是怎么会事,总是编译不过去呢
import java.io.*;
import org.w3c.dom.*;
import org.w3c.dom.Node;
import org.xml.sax.*;
import javax.xml.parsers.*;public class ValidSample
{
static public void main(String[] args)
{
try
{
//类含义?????--如何解析XSD?????
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
dbfactory.setNamespaceAware(true);
dbfactory.setValidating(true);
DocumentBuilder domparser = dbfactory.newDocumentBuilder();
Document doc = domparser.parse(new File("book_ex.xml"));
System.out.println("XML文档解析完毕!");
}
catch(ParserConfigurationException p)
{
System.out.println(p.toString());
}
catch(SAXException s)
{
System.out.println(s.toString());
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
}
http://www-128.ibm.com/developerworks/cn/xml/x-dom4j.html?ca=dwcn-newsletter-xml#author1
很简单的
以前的一个贴子