`
smallmonkeandyjj
  • 浏览: 6400 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

解析XML文档

阅读更多
---客户端
package com.hh.socket;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hh.dao.InsertHourAndDayImpl;
import com.hh.entity.DayBean;
import com.hh.entity.HourBean;

//客户端,
public class Client {
HourBean hb=new HourBean();
DayBean db=new DayBean();
ApplicationContext context=new ClassPathXmlApplicationContext("Config.xml");
ApplicationContext con=new ClassPathXmlApplicationContext("applicationContext.xml");

public void getConn(){
    String file="E:\\文档目录.xml";
try {
Socket socket=new Socket("127.0.0.1",8088);
PrintWriter writer=new PrintWriter(socket.getOutputStream());
writer.println(file);
writer.flush();

ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
List list=(List) in.readObject();
InsertHourAndDayImpl ihi=(InsertHourAndDayImpl) con.getBean("jdbcImpl");
for(int i=0;i<list.size();i++){
    boolean boo=ihi.insertDayData((DayBean)list.get(i));
    if(boo){
    System.out.println("Oh!Yeah!");
    }
}
   
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
new Client().getConn();
}
}
-------服务端

package com.hh.socket;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

import com.hh.dao.InsertHourAndDayImpl;
import com.hh.entity.HourBean;

//服务器端
public class Server{
HourBean hb=new HourBean();

//连接端口
public void getConn(){
try {
ServerSocket ssocket=new ServerSocket(8088);
System.out.println("连接开启!");
while(1==1){
Socket socket=ssocket.accept();
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str= in.readLine();

List list=new InsertHourAndDayImpl().evaluateDay(str);

ObjectOutputStream out=new ObjectOutputStream(socket.getOutputStream());
out.writeObject(list);

out.close();
in.close();
socket.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}

public static void main(String[] args) {
new Server().getConn();
}
----------逻辑类
package com.hh.dao;

import java.io.File;
import java.util.*;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

import com.hh.entity.DayBean;
import com.hh.entity.HourBean;
import com.hh.entity.InsertHourBiz;

public class InsertHourAndDayImpl implements InsertHourBiz{
JdbcTemplate template;
public void setTemplate(JdbcTemplate template) {
this.template = template;
}

HourBean hb=new HourBean();
public List evaluate(String file){
SAXReader read=new SAXReader();
Document doc=null;

try {
doc=read.read(new File(file));
} catch (DocumentException e) {
e.printStackTrace();
}
// 写入新文件
List l=new ArrayList();
Element ele = doc.getRootElement();
List list = ele.elements();
System.out.println( list.get(0).toString());
// 获得小时数据节点的值
for(int i=0;i<list.size();i++){
Element element = (Element) list.get(i);
//变压器id

String f0 = element.attributeValue("TranId");
System.out.println(f0);
//日期
String f1 = element.element("Date").getText();
   f1 = f1.replaceAll("-", "/");
    //尖峰平谷.有无功总码
float f2 = new Float(element.elementText("PowerNum")).floatValue();
float f3 = new Float(element.elementText("Needle")).floatValue();
float f4 = new Float(element.elementText("Apex")).floatValue();
float f5 = new Float(element.elementText("Ping")).floatValue();
float f6 = new Float(element.elementText("Valley")).floatValue();
float f7 = new Float(element.elementText("UnPowerNum")).floatValue();
float f8 = new Float(element.elementText("UnNeedle")).floatValue();
float f9 = new Float(element.elementText("UnApex")).floatValue();
float f10 = new Float(element.elementText("UnPing")).floatValue();
float f11 = new Float(element.elementText("UnValley")).floatValue();
// 有无功功率
float Power = new Float(element.elementText("Power")).floatValue();
float UnPower = new Float(element.elementText("UnPower")).floatValue();
//ABC电压电流
float av=new Float(element.elementText("AVoltage")).floatValue();
float bv=new Float(element.elementText("BVoltage")).floatValue();
float cv=new Float(element.elementText("CVoltage")).floatValue();

float ac=new Float(element.elementText("ACurrent")).floatValue();
float bc=new Float(element.elementText("BCurrent")).floatValue();
float cc=new Float(element.elementText("CCurrent")).floatValue();

//循环添加小时数据
HourBean hb=new HourBean(f0,new Date(f1),f2,f7,Power,UnPower,f3,f4,f5,f6,
f8,f9,f10,f11,av,bv,cv,ac,bc,cc);
l.add(hb);

}
return l;
}

//插入到小时数据库
public boolean insertHourData(HourBean hb) {
boolean boo=false;
Object[] obj={hb.getTranId(),hb.getTime(),new Float(hb.getPowerNum()),
new Float(hb.getUnPowerNum()),new Float(hb.getPower()),
new Float(hb.getUnPower()),new Float(hb.getNeedle()),new Float(hb.getApex()),
new Float(hb.getPing()),new Float(hb.getValley()),new Float(hb.getUnNeedle()),
new Float(hb.getUnApex()),new Float(hb.getUnPing()),new Float(hb.getUnValley()),
new Float(hb.getAVoltage()),new Float(hb.getBVoltage()),new Float(hb.getCVoltage()),
new Float(hb.getACurrent()),new Float(hb.getBCurrent()),new Float(hb.getCCurrent())};
String sql="insert into scott.elec_tranHour values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
template.update(sql,obj);

boo=true;
return boo;
}

//日数据
DayBean db=new DayBean();
public List evaluateDay(String file){
SAXReader read=new SAXReader();
Document doc=null;

try {
doc=read.read(new File(file));
} catch (DocumentException e) {
e.printStackTrace();
}
// 写入新文件
List l=new ArrayList();
Element ele = doc.getRootElement();
List list = ele.elements();
System.out.println( list.get(0).toString());
// 获得日数据节点的值
for(int i=0;i<list.size();i++){
Element element = (Element) list.get(i);
//变压器id

String f0 = element.attributeValue("TranId");
System.out.println(f0);
//日期
String f1 = element.element("Date").getText();
   f1 = f1.replaceAll("-", "/");
    //有功总码
float f2 = new Float(element.elementText("PowerTotalNum")).floatValue();
//有功总码.尖峰平谷
float f3 = new Float(element.elementText("PowerNeedle")).floatValue();
float f4 = new Float(element.elementText("PowerApex")).floatValue();
float f5 = new Float(element.elementText("PowerPing")).floatValue();
float f6 = new Float(element.elementText("PowerValley")).floatValue();
//无功总码.尖峰平谷
float f7 = new Float(element.elementText("UnPowerTotalNum")).floatValue();
float f8 = new Float(element.elementText("UnNeedle")).floatValue();
float f9 = new Float(element.elementText("UnApex")).floatValue();
float f10 = new Float(element.elementText("UnPing")).floatValue();
float f11 = new Float(element.elementText("UnValley")).floatValue();
// 有无功电量
float PowerElectricity  = new Float(element.elementText("PowerElectricity")).floatValue();
float unPowerElectricity  = new Float(element.elementText("UnPowerElectricity")).floatValue();

//循环添加小时数据
DayBean db=new DayBean(f0,new Date(f1),f2,PowerElectricity,f3,f4,f5,f6,f7,unPowerElectricity,f8,f9,f10,f11);
l.add(db);

}
return l;
}

//插入到日数据库
public boolean insertDayData(DayBean db){
boolean boo=false;
Object[] obj={db.getTranId(),db.getDate(),new Float(db.getPowerTotalNum()),
new Float(db.getPowerElectricity()),new Float(db.getPowerNeedle()),new Float(db.getPowerApex()),
new Float(db.getPowerPing()),new Float(db.getPowerValley()),new Float(db.getUnPowerTotalNum()),
new Float(db.getUnPowerElectricity()),new Float(db.getUnNeedle()),
new Float(db.getUnApex()),new Float(db.getUnPing()),
new Float(db.getUnValley()),
};
String sql="insert into scott.elec_tranDay values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
template.update(sql,obj);
boo=true;
return boo;
}


}
--------------配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:orcl">
</property>
<property name="username" value="system"></property>
<property name="password" value="system"></property>
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>

<bean id="jdbcImpl" class="com.hh.dao.InsertHourAndDayImpl">
<property name="template" ref="jdbcTemplate"></property>
</bean>


</beans>
分享到:
评论

相关推荐

    python解析xml文件

    在Python中解析XML文件是一种常见的需求,特别是在处理配置文件、数据交换格式以及其他需要结构化数据的应用场景中。本文将详细介绍如何使用两种流行的方法——`MiniDom`和`ElementTree`来解析XML文件。 #### 1. ...

    C++解析xml文件

    本文将深入探讨如何使用C++来解析XML文件,主要围绕“C++实现对xml文件的解析”这一主题展开。 XML文件通常包含一系列元素,每个元素都有开始标签、结束标签和可能的属性。C++中解析XML文件的方法多种多样,这里...

    使用JDOM解析XML文件

    本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...

    js解析XML文件

    JS 解析 XML 文件 作为一名 IT 行业大师,我将从给定的...使用 JavaScript 解析 XML 文件需要了解 XML 文档的结构和各个节点的类型,选择合适的解析方法,考虑浏览器兼容性问题,并掌握相关的 JavaScript 语法和方法。

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    Sax解析xml文件

    SAX解析器的工作原理是基于事件驱动的,它在解析XML文档时会触发一系列的事件,如开始文档、结束文档、开始元素、结束元素等。开发者通过实现SAX解析器的回调接口(如ContentHandler),在这些事件发生时执行相应的...

    SAX解析XML文件实例

    SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...

    C++解析xml文档或者xml字符串方法

    在C++中,解析XML文档或XML字符串是常见的任务,特别是在需要与JavaScript或其他不支持指针的语言交互时。本文将详细介绍如何在Visual Studio 2010环境下利用Microsoft的MSXML库来处理XML数据。 首先,让我们看看...

    解析XML文档 实现树结构实例

    在Windows环境下,使用VC++作为开发工具,我们可以利用MSXML组件来解析XML文档并构建出相应的树结构。MSXML是Microsoft提供的一个COM组件,它提供了XML文档的读取、写入和操作功能,对于C++开发者来说,通过COM接口...

    QT解析xml文档 读取写入

    在QT中解析XML文档主要依赖于QDomDocument类和相关的辅助类,如QDomElement、QDomNode等。XML(eXtensible Markup Language)是一种结构化数据格式,常用于存储和传输数据。 XML文档由一系列元素组成,每个元素都有...

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    在Java编程环境中,解析XML文件是一项常见的任务,特别是在数据处理和集成中。XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析...

    android 解析XML文件 生成XML文件

    本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...

    XmlPullParser解析Xml文件解析demo

    XmlPullParser的工作原理是通过事件触发来解析XML文档。它会遍历XML文档的每一个节点,每当遇到开始标签、结束标签、文本内容等时,就会触发相应的事件。开发者通过注册监听器,可以捕获这些事件并进行处理。这种...

    MFC 解析XML类和Markup解析XML文件实例

    这两个类提供了解析XML文档和处理XML事件的能力,使得开发者能够在Visual C++环境中方便地操作XML数据。本文将深入探讨这两个类以及如何使用它们来解析和操作XML文件。 首先,`CXMLDOMDocument` 是基于MSXML...

    MFC解析XML文档类

    以下是一些关于使用MFC解析XML文档的关键知识点: 1. **初始化和加载XML文档**: - 创建`CXMLDOMDocument`对象。 - 调用`LoadXML`或`Load`函数加载XML数据。`LoadXML`接受XML字符串作为参数,而`Load`则加载文件...

    解析XML文件例子

    以下是一些关于解析XML文件的知识点: 1. XML结构: - 根元素:XML文档必须有一个根元素,所有其他元素都包含在这个根元素内。 - 元素:XML中的基本单位,用尖括号 `&lt; &gt;` 包围,如 `&lt;book&gt;`。 - 属性:元素可以...

    解析XML文件(字符串)的两种方法

    `DocumentHelper`也是DOM4J库的一部分,提供了更简便的方式来解析XML文档。相比`SAXReader`,`DocumentHelper`更适用于处理简单的场景。 ##### 示例代码分析 ```java Document document = DocumentHelper....

    STM32解析XML

    5. **解析XML文档**:使用`xml_parse()`函数开始解析XML数据。这个过程会逐行处理XML文档,返回XML元素的节点结构。 6. **处理XML节点**:在解析过程中,通过回调函数处理每个元素节点,提取元素名、属性和文本内容...

    Android 解析xml文件

    本篇将深入探讨Android中解析XML文件的方法,以及如何通过示例代码`ReadXmlConfigFile`来实现这一过程。 ### XML解析器类型 Android提供了多种解析XML的方式,主要包括以下几种: 1. **DOM解析器**:Document ...

Global site tag (gtag.js) - Google Analytics