ThroughoutCMS技术共享系列(2):XML访问类
上次把数据库访问类共享出来了,几个同事网上感慨了一番,真的没有想到我还保留5年前的代码,我说,代码本来就是应该被阅读和研究的,代码同样具有思想和情节,这就是在一穷二白的情况下的历史和轨迹。配置管理同样也是一位尽职的史官。
总结一下,上次给出的代码虽然可以直接运行和使用,的确存在大量可以改进的地方,现在列出部分意见:
1、不支持多种数据库连接(例如Oracle、DB2、Access,mySql等);
2、代码封装不彻底,面向对象,起码应该采取工厂方法。
3、不支持多线程,没有连接池的概念,同一时间只能建立一个连接;
4、对于事务处理考虑不够;
5、没有考虑到会话;
6、代码本身性能、语法方面还可以存在大量改进的地方。
......
一下子给出好几十条,看来还是有人研究了。这里就不在展开了,有机会专门开个专题讨论一下数据访问层的设计问题。
今天给出ThroughoutCMS技术共享系列第二章:XML访问类,恐怕这也是我们经常用到的一个关键基础类库,无论采用.net还是采用java、VC、python,只要是上规模的项目,都缺少不了它,关于为什么要采用XML的问题,这里就不在详细讨论了,网上资料有的是。
下面的代码同样是一个产品中的真实文件,只不过是第一版的,直接采用dom的思想,缺少SAX的操作,功能小而全,涉及到XML文件读取和节点操作,同样那句话,如果要用,可以直接拷贝,如果教学,非常实用。
// 本文件包含了XML数据访问的通用函数.
using System ;
using System.Globalization ;
using System.Xml ;
namespace CMS.Lib
{
public class XML
{
private XML(){}
/// <summary>
/// 加载XML文档,返回XmlDocument对象
/// </summary>
/// <param name="sXMLFile">xml文件</param>
/// <returns>加载的XmlDocument对象</returns>
public static XmlDocument LoadXML(string sXMLFile)
{
XmlDocument objXmlDoc=new XmlDocument();
 
相关文档:
调试时发现日志报如下错误 org.xml.sax.SAXParseException
发现是xml对特殊符号要做处理,几个特殊符号如下:
< < 小于号
> > 大于号
& & 和
' ' 单引号
" " 双引号
在xml中把特殊符号用上述转下即好了 ......
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档。
dom4j API 包含一个解析 XML 文档的工具。本文中将使用这个解析器创建一个示例 XML 文档。清单 1 显示了这个示例 XML 文档,catalog.xml。
清单 1. 示例 XML 文档(catalog.xml)
<?xml version=" ......
使用XMLList读取XML数据
XML对象提供了一个返回XMLList类型的方法elements(),既返回所有XML对象的子元素节点,随后我们可以通过for each语句循环则可访问到整个XML数据内容。以上面创建内部XML文档的XML数据为例,详细见如下代码块:
varlist:XMLList=pXml.elements();
foreach(varelement:XMLinlist)
{
// ......
5. 命名规则(不能包括 xml,空格,尖括号,等特殊符号,不能数字开头)
6. 可以自带属性。属性值用“”标示
7. 注释<!--注释的内容-->
8. 如果要显示特殊符号可用<![CDATA[ 这里写特殊符号 ]]>
创建
var xml:XML=<shuiGuo>
& ......
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadSetting {
......