0 0

xml存放信息问题10


 

public void saveHistory(String strRead) {
		String from_account = strRead.split("&")[1].split(":")[0];
		String to_account = strRead.split("&")[1].split(":")[1];
		String msg = strRead.split("&")[1].split(":")[2];
		System.out.println("服务端收到的聊天记录"+msg);
		UserInforDao dao = new UserInforDao();
		if (dao.saveHistory(from_account, to_account,msg)) {
			JOptionPane.showMessageDialog(null, "保存聊天记录成功");
		} else {
			JOptionPane.showMessageDialog(null, "保存聊天记录失败");
		}
	}

 

public boolean saveHistory(String from_account, String to_account,
			String msg) {
		// TODO Auto-generated method stub
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		DocumentBuilder db;
		try {
			db = dbf.newDocumentBuilder();
			Document doc = db.parse(new File("XmlFile/History.xml"));

			NodeList lstUser = doc.getElementsByTagName("history");
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < lstUser.getLength(); i++) {
				Element el = (Element) lstUser.item(i);
				if (el.getAttribute("myId").equals(from_account)
						&& el.getAttribute("friendId").equals(to_account)) {
					sb.append(msg).append("\r\n");
					el.setTextContent(sb.toString());
					System.out.println("xml的聊天记录"+el.getTextContent());
					TransformerFactory tff = TransformerFactory
							.newInstance();
					Transformer tf = tff.newTransformer();
					tf.transform(new DOMSource(doc), new StreamResult(
							new File("XmlFile/History.xml")));
					return true;
				} 
			}
					Element root = doc.getDocumentElement();
					Element history = doc.createElement("history");
					history.setAttribute("myId", from_account);
					history.setAttribute("friendId", to_account);
					Element message=doc.createElement("message");
					sb.append(msg).append("\r\n");
					message.setTextContent(sb.toString());
					history.appendChild(message);
					root.appendChild(history);
					TransformerFactory tff = TransformerFactory
							.newInstance();
					Transformer tf = tff.newTransformer();
					tf.transform(new DOMSource(root), new StreamResult(
							new File("XmlFile/History.xml")));
					return true;
				

		} catch (ParserConfigurationException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (SAXException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (TransformerConfigurationException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (TransformerException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return false;
	}

 



聊天记录是这种形式:
1000说:【2013-10-22 12:59:46】
kkkkkkkkkkkkkkkkkkkkkkkkkk
1000说:【2013-10-22 12:59:53】
kkkkkkkkkkkkkkkkjjjjjjjjjjjjjjjjjjjjjjjj
1000说:【2013-10-22 13:43:57】
vvvvvvvvvvvvvvvvvvvvvvvvvvvv

但是结果保存的是酱紫的

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Historys>
	<history friendId="1001" myId="1000">1000说:【2013-10-21 23&#13;
   	</history>
	<history friendId="1002" myId="1000">		
	</history>
	<history friendId="1003" myId="1000">		
	</history>
	<history friendId="1000" myId="1001">1000说:【2013-10-21 23&#13;
	</history>
	<history friendId="1002" myId="1002">1002说:【2013-10-21 20&#13;
	</history>
	<history friendId="1003" myId="1005">1003说:【2013-10-22 02&#13;
	</history>
	<history friendId="1005" myId="1003">1005说:【2013-10-22 02&#13;
	</history>
</Historys>

 

 

2013年10月22日 14:49
目前还没有答案

相关推荐

    学生信息查询服务XML版

    App_Data是一个常见的.NET Framework应用程序存放数据文件的目录,它可以包含数据库文件、文本文件或其他数据文件,如XML文件。XML文件的结构化特性使得信息的组织清晰,便于解析和检索。 服务端是这个系统的核心...

    XML 中存储图片等二进制文件

    XML 中是可以存储图片等二进制内容,我们也常常这样做,比如我们在进行网站信息交换时,利用一个 XML 就可以实现网站信息及其信息附件的交换。实际图片等二进制不仅可转换存储在 XML 中,也可存储在 TXT 文档中,...

    ruby xml封装好的操作XML对象

    在处理XML时,可能会遇到解析错误或其他问题。确保添加适当的错误处理机制,例如使用`begin-rescue-end`块来捕获和处理异常。 6. **性能考虑** 如果处理大量XML数据,优化解析性能是必要的。Nokogiri允许使用`...

    kettle 解析xml xml文档,配合kettle 解析xml stax方法,完整解析案例使用

    与上一个版本一起使用可以可以起到提高效率的目的。本人解析xml的真实文档

    XML_试题推荐

    XML,全称可扩展标记语言(Extensible Markup Language),是一种用于标记数据的语言,它允许用户自定义标签来描述数据,从而使得数据结构清晰且易于解析。XML被广泛应用于数据交换、配置文件、文档存储等领域。 1....

    jbpm流程设计器 + 生成对应xml文档 完美实现

    jbpm流程设计器 + 生成对应xml文档: 内部含有: jbpm控件 1: myflow2:插件原本内容 访问地址:http://localhost:8080/jbpmFlow1/myflow2/demo4.jsp 实现生成对应xml文档 并写有对xml文档读取存储到对象中,...

    vb6XML读写

    XMLDoc.Load "F:\example\test.xml" 'xml文件路径根据存放路径不同而不同! Set xn = XMLDoc.selectSingleNode("testlist") '以下为读取xml文件内容,这里用ListView控件显示 Set xlst = xn.childNodes ListView1.List...

    java 对xml文件的增上改查功能

    这些操作对于处理配置文件、数据存储或者在不同系统间传递信息至关重要。 ### XML文件读取 读取XML文件通常涉及DOM(Document Object Model)或SAX(Simple API for XML)解析器。DOM解析器将整个XML文档加载到内存...

    如何在FineReport中解析数据库内XML文件

    这里,XMLReader对象用于遍历XML结构,并且一旦遇到名为"Field"的节点,就会执行相应的逻辑来提取节点内的信息,然后把这些信息存放到Value数组中。Value数组在每次遇到新的"Field"节点时会被更新,最终它包含了从...

    xml解析与封装详解

    数据区:所有的数据区必须有一个根元素,一个根元素下可以存放多个子元素,但是要求每一个元素必须完结。每一个标记都是区分大小写的。 XML 文件的特点 XML 文件的特点是 tree 树状结构,可以更好的表示出每一个...

    XML配置文件连接Oracle数据库

    XML(Extensible Markup Language)是一种用于标记数据的语言,它被广泛应用于配置文件中,因为它的结构清晰、可读性强,适合存储和传输结构化的信息。在本场景中,我们将探讨如何使用XML配置文件来连接Oracle数据库...

    将数据库数据以XML文件格式保存

    在IT行业中,数据库是存储和管理结构化信息的核心工具,而XML(eXtensible Markup Language)是一种用于标记数据的标准格式,广泛应用于数据交换、配置文件以及数据存储。本主题聚焦于如何将数据库中的数据导出并...

    根据XML生成xsd

    XML生成XSD xml生成xsd 生成xsd工具 工具 使用方法: java -jar trang.jar xml文件绝对路径 要生成...例如在当前目录有文件aaa.xml,需要生成xsd文件名为aaa,并存放在当前目录: java -jar trang.jar aaa.xml aaa.xsd

    excel 转为xml python

    日志管理是软件开发中的重要部分,`Log.py`可能实现了日志记录功能,可能使用了Python的`logging`库来记录程序运行过程中的信息,便于调试和问题排查。 7. **`XMLDataDir`和`ExcelDataDir`**: 这两个目录分别...

    C# xml导入sql

    `bin`和`obj`目录是编译时生成的,分别存放编译后的程序集和中间文件。 7. **数据库提供者(Provider)**: `SQLSetProvider.cs`可能是实现`ISetProvider`接口的具体类,专为SQL Server设计。数据库提供者是.NET...

    跨平台C实现的XML解析器,自带内存管理接口xmlparser

    "include"目录通常存放头文件,这些头文件定义了xmlparser的API,供其他C程序调用。"Debug"目录则包含编译后的调试版本库或可执行文件,"src"目录则是源代码,包含xmlparser的实现细节。 要使用xmlparser,首先需要...

    C# 基于XML实现增删改查 开发架构

    “lib”文件夹可能存放了项目依赖的第三方库或自定义的组件,这些库可能包含XML解析、数据验证、日志记录等功能的实现。 “代码说明.txt”可能提供了项目代码的详细解释和使用指南,这对于理解和维护这个系统至关...

    Java 解析xml 存入mongodb 返回org.json json包

    - 在解析XML时,根据接收到的元素信息创建`MyData`对象实例。 - 使用MongoDB的`MongoDatabase`和`MongoCollection`接口,创建对应集合,然后调用`insertOne()`或`insertMany()`方法将数据插入到MongoDB中。 3. **...

Global site tag (gtag.js) - Google Analytics