在很多情况下, 我们会用到XML,比如说配置文件等.C#提供了XML类.
这里我只是简单的写一下XML文件的生成,解析就不多说了.
第一种方法
DataBase db = DataBaseFactory.CreateDataBase(DataBaseType.MySql, strMysql);
DbCommand command = db.GetSqlStringCommand(strSql);
DataTable dt = db.ExecuteDataSet(command).Tables[0];
//string strFileName = Application.StartupPath + "\\" + "test.xml";
DirectoryInfo file = new DirectoryInfo(strPath);
if (!file.Exists)
{
file.Create();
&nb ......
这篇文章被转载的次数最多,其实代码简陋得我自己都看不下去。只不过发表这篇文章时很多人需要这个功能。
这几天写个数据库查询分析器,要用到XML记录用户注册的数据库连接地址、端口等信息,最开始想用java的propertie类来完成。但propertie不支持[小结名--键值名--键值]这种结构,如果要记录用户注册的多个数据库信息的话,propertie中就必须用[小结名.键值名=键值]这种格式进行记录,后来用到xml,完成了类似ini文件读取和保存的功能,删除功能目前还没做,要实现很简单,所以就没包含在代码里面了。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SERVER>
<CRM>
<IP>162.105.167.4</IP>
<PORT>5000</PORT>
<CHARSET>cp850</CHARSET>
<DBTYPE>Sybase</DBTYPE>
<DBNAME>BB_CRM</DBNAME>
</CRM>
<JYGS>
<IP>162.105.16 ......
这篇文章被转载的次数最多,其实代码简陋得我自己都看不下去。只不过发表这篇文章时很多人需要这个功能。
这几天写个数据库查询分析器,要用到XML记录用户注册的数据库连接地址、端口等信息,最开始想用java的propertie类来完成。但propertie不支持[小结名--键值名--键值]这种结构,如果要记录用户注册的多个数据库信息的话,propertie中就必须用[小结名.键值名=键值]这种格式进行记录,后来用到xml,完成了类似ini文件读取和保存的功能,删除功能目前还没做,要实现很简单,所以就没包含在代码里面了。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SERVER>
<CRM>
<IP>162.105.167.4</IP>
<PORT>5000</PORT>
<CHARSET>cp850</CHARSET>
<DBTYPE>Sybase</DBTYPE>
<DBNAME>BB_CRM</DBNAME>
</CRM>
<JYGS>
<IP>162.105.16 ......
using System;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
// 添加引用 -> .NET -> Microsoft.Office.Interop.Excel(2003->11.0, 2007->12.0)
namespace WinFormTable
{
public partial class FormTable : Form
{
#region
private DataTable table;
private ChineseLunisolarCalendar lunarCalendar;
#endregion
public FormTable()
{
#region
InitializeComponent();
lunarCalen ......
using System;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
// 添加引用 -> .NET -> Microsoft.Office.Interop.Excel(2003->11.0, 2007->12.0)
namespace WinFormTable
{
public partial class FormTable : Form
{
#region
private DataTable table;
private ChineseLunisolarCalendar lunarCalendar;
#endregion
public FormTable()
{
#region
InitializeComponent();
lunarCalen ......
首先我们给出一段示例程序:
import
java.io.File;
import
java.io.FileWriter;
import
java.util.Iterator;
import
org.dom4j.Document;
import
org.dom4j.DocumentHelper;
import
org.dom4j.Element;
import
org.dom4j.io.OutputFormat;
import
org.dom4j.io.SAXReader;
import
org.dom4j.io.XMLWriter;
public
class
DOM4JTest
{
/** */
/**
*/
/** */
/**
*/
/** */
/**
*/
/** */
/**
* DOM4J读写XML示例
*
*
@param
args
*
@throws
Exception
*/
public
static
void
main(String[] args)
{
......
对于小型数据存储很方便。
但多了就要遇到IO瓶颈。
另外,XML格式比较通用。
一般来说,复杂型的数据存储还是用数据库好些。处理方便。而且效率高。
通用性强,可以在任何平台上使用。小型的数据都可以使用XML。
缺点就是有一个缓存的问题
1)XML可以用于本地计算的数据。传递到桌面的数据可以进行本地计算。XML解析器可以读取数据,并将它递交给本地应用程序(例如浏览器)进一步查看或处理。数据也可以由使用XML对象模型的脚本或其它编程语言来处理。 2)可以为用户提供正确的结构化数据视图。传递到桌面的数据可以以多种方式表示。本地数据集,可以根据用户喜好和配置等因素,以适当的形式在视图中动态表现给用户。 3)允许集成不同来源的结构化数据。使用代理可在中间层服务器上集成来自后端数据库和其它应用程序的数据,使该数据能够传递给桌面或者其它服务器,做进一步处理。 4)描述来自多种应用程序的数据。由于 XML 是可扩展的,因此它可以用于描述来自多种应用程序的数据,即使没有数据的内置描述,也能够接收和处理数据。 5)通过粒度更新来提高性能。XML 允许粒度更新。开发人员不必在每次改动时都发送整个结构化数据集。有了粒度更新后,只有改变的� ......
private
NodeList root(
final
String url ,
final
String str){
NodeList root =
null
;
try
{
InputSource is=
new
InputSource(
new
InputStreamReader(
new
URL(url).openStream()));
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance
();
DocumentBuilder dom = factory.newDocumentBuilder();
Document doc = dom.parse(is);
root = doc.getElementsByTagName(str);
}
catch
(Exception e){
......