using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
namespace ConsoleApplication
{
class XMLUtils
{
public string dbContection = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={HOST})(PORT={PORT})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={SERVICE_NAME})));User Id={UID};Password={PWD};";
public const string INFO = "info";
public const string DATABASE = "database";
public const string CONTECTION = "contection";
public const string SMTP = "smtp";
public const string HOST = "host";
public const string PORT = "port";
public const string USERNAME = "username";
public const string PASSWORD = "password";
public const string MAIL = "mail";
public const string FROM = "from";
public const string TO = "to";
public const string SENDMAIL = "sendmail";
public const string SUBJECT1 = "subject1";
public const string BODY1 = "body1";
public const string DATAGENERATION = "datageneration";
public const string SUBJECT2 = "subject2";
public const string BODY2 = "body2";
private string xmlPath;
private Dictionary dict = null;
public XMLUtils(string xmlPath)
{
this.xmlPath = xmlPath;
if (File.Exists(xmlPath)){
readXml(xmlPath);
} else {
createXml(xmlPath);
}
}
private void createXml(string xmlPath)
{
XmlTextWriter writer = new XmlTextWriter(xmlPath, System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
//
writer.WriteStartDocument();
writer.WriteStartElement(INFO);
writer.WriteStartElement(DATABASE);
writer.WriteStartElement(CONTECTION);
writer.WriteCData(dbContection);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteStartElement(SMTP);
writer.WriteElementString(HOST, "SMTP HOST");
writer.WriteElementString(PORT, "SMTP PORT");
writer.WriteElementString(USERNAME, "SMTP USERNAME");
writer.WriteElementString(PASSWORD, "SMTP PASSWORD");
writer.WriteEndElement();
writer.WriteStartElement(MAIL);
writer.WriteElementString(FROM, "FROM");
writer.WriteElementString(TO, "TO");
writer.WriteStartElement(SENDMAIL);
writer.WriteElementString(SUBJECT1, "SUBJECT1");
writer.WriteStartElement(BODY1);
writer.WriteCData("BODY1");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteStartElement(DATAGENERATION);
writer.WriteElementString(SUBJECT2, "SUBJECT2");
writer.WriteStartElement(BODY2);
writer.WriteCData("BODY2");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
}
private void readXml(string xmlPath)
{
dict = new Dictionary();
XmlTextReader reader = new XmlTextReader(new StreamReader(xmlPath, System.Text.Encoding.UTF8));
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.LocalName == CONTECTION)
{
dict.Add(CONTECTION, reader.ReadString().Trim());
}
if (reader.LocalName == HOST)
{
dict.Add(HOST, reader.ReadString().Trim());
}
if (reader.LocalName == PORT)
{
dict.Add(PORT, reader.ReadString().Trim());
}
if (reader.LocalName == USERNAME)
{
dict.Add(USERNAME, reader.ReadString().Trim());
}
if (reader.LocalName == PASSWORD)
{
dict.Add(PASSWORD, reader.ReadString().Trim());
}
if (reader.LocalName == FROM)
{
dict.Add(FROM, reader.ReadString().Trim());
}
if (reader.LocalName == TO)
{
dict.Add(TO, reader.ReadString().Trim());
}
if (reader.LocalName == SUBJECT1)
{
dict.Add(SUBJECT1, reader.ReadString().Trim());
}
if (reader.LocalName == BODY1)
{
dict.Add(BODY1, reader.ReadString().Trim());
}
if (reader.LocalName == SUBJECT2)
{
dict.Add(SUBJECT2, reader.ReadString().Trim());
}
if (reader.LocalName == BODY2)
{
dict.Add(BODY2, reader.ReadString().Trim());
}
}
}
}
public Dictionary getInfo()
{
return dict;
}
}
}
生成XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<info>
<database>
<contection><![CDATA[Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={HOST})(PORT={PORT})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={SERVICE_NAME})));User Id={UID};Password={PWD};]]></contection>
</database>
<smtp>
<host>SMTP POST</host>
<port>SMTP PORT</port>
<username>SMTP USERNAME</username>
<password>SMTP PASSWORD</password>
</smtp>
<mail>
<from>FROM</from>
<to>TO</to>
<sendmail>
<subject1>SUBJECT1subject1>
<body1><![CDATA[BODY1]]></body1>
</sendmail>
<datageneration>
<subject2>SUBJECT2</subject2>
<body2><![CDATA[BODY2]]></body2>
</datageneration>
</mail>
</info>
分享到:
相关推荐
根据给定文件的信息,本文将深入探讨如何使用C#进行XML文件的读写操作,并详细介绍相关的知识点和技术细节。 ### C#中的XML处理简介 在.NET框架中,XML是一种非常重要的数据交换格式,广泛应用于Web服务、配置文件...
根据提供的文件信息,本文将详细解析C#语言中读写XML文件的相关知识点,包括但不限于XML在C#中的重要性、常用的命名空间、读写XML文件的具体实现方式等。 ### C#与XML #### XML的重要性 XML(Extensible Markup ...
本篇文章将探讨C#如何进行XML文件的读写操作,并对关键类进行详细说明。 首先,XML在.NET框架中的基础是System.Xml命名空间,它包含了处理XML文档的主要类。其中,XmlReader类是读取XML文档的基础,提供了一系列...
【C# 读写XML文件】 XML(Extensible Markup Language)是一种结构化数据格式,广泛应用在数据交换、配置文件和存储轻量级数据中。C#提供了丰富的类库来支持XML的处理,使得程序员可以方便地进行XML的读取和写入操作...
5. **XML文本读写器(XmlTextReader/XmlTextWriter)**:这些类提供了流式处理XML的能力,适合处理大型XML文件,因为它们不需要将整个文件加载到内存中。 ```csharp using (XmlTextReader reader = new ...
`Form1.cs`则包含了窗体的逻辑处理,如事件处理程序,这是实现XML读写功能的核心部分。在`Form1.cs`中,你可能找到类似以下的代码来加载XML文件到文本框: ```csharp private void LoadXml_Click(object sender, ...
确保在尝试读写XML时添加适当的异常处理。 6. **使用Visual Studio 2008的集成开发环境** Visual Studio 2008提供了一个强大的集成开发环境,包括代码提示、调试工具以及XML编辑器,可以帮助开发者更高效地编写和...
2. **XmlNodeReader/XmlNodeWriter**: 这两个类提供了一种流式读写XML的方式,适用于大型XML文档。 3. **XmlTextReader/XmlTextWriter**: 类似于XmlNodeReader/XmlNodeWriter,但更轻量级,适合简单的读写任务。 4...
在C#中,我们可以使用`XmlTextWriter`或`XmlDocument`类来创建新的XML文件。`XmlTextWriter`提供了一种流式的方式写入XML,而`XmlDocument`则允许更灵活的DOM(Document Object Model)操作。 1. 使用`...
总的来说,C#通过`System.Xml`命名空间及其子命名空间提供了强大的XML处理能力,无论是在简单的文件读写还是复杂的XML数据操作和转换,都可以轻松应对。熟悉这些类和方法,将极大地提高开发效率。
1. **System.Xml**:这个命名空间是处理XML的基础,其中包含了一系列用于读写XML文档的类。例如: - **XmlReader** 和 **XmlTextReader** 提供了只读、向前的XML解析器,用于高效地遍历XML文档。 - **...
在处理XML文档时,`XmlTextReader`和`XmlTextWriter`是.NET Framework中两个非常重要的类,它们为XML的读取和写入提供了高效且灵活的方式。在ACF-4.0版本中,这两个类的功能得到了进一步优化和增强,使得XML操作更加...
在Windows CE(简称Wince)环境下,C#程序员经常需要处理XML文件,因为XML作为一种结构化数据存储方式,被广泛用于配置文件、数据传输和序列化等场景。本篇文章将详细探讨如何在C#中对XML进行读取、修改以及写入操作...
本文将详细介绍.NET中读写XML文档的相关知识点,并提供示例代码供参考。 首先,.NET框架中主要与XML相关的命名空间包括: 1. System.Xml:包含了处理XML文档的核心类,如XmlReader、XmlTextReader、...
- PB9内置了对XML的支持,提供了XMLTextReader和XMLTextWriter类,用于读写XML文档。 - PB9也支持DOM(Document Object Model)模型,这是一种树形结构,允许程序通过节点操作XML。 3. **读取XML**: - 使用...
以上就是XML读写的基本操作,包括使用XmlTextReader、XmlNodeReader进行读取,以及XmlTextWriter和XmlDocument进行写入。XPath作为强大的查询工具,可以帮助我们高效地定位和提取XML中的数据。实践中,可以根据具体...
真实世界的 XML 在 .NET 框架中,处理 XML 数据主要依赖于两类核心类:XmlTextReader 和 XmlTextWriter。这两个类分别用于读取和写入 XML 文档,它们提供了高效且灵活的方式来操作 XML 数据。 XmlTextReader 是一个...
2. **读写XML**:ASP.NET提供了多种API来读写XML文件。例如,`XmlTextReader`类用于高效地读取XML文档,它支持向前只读的流式访问,不保存整个文档到内存。而`XmlTextWriter`类则用于创建和修改XML文档,它允许以流...
6. **XML文本读写器**:包括XmlTextReader和XmlTextWriter,它们提供了一种高效的方式,用于逐个节点地读取和写入XML文档,适用于处理大型XML文件。 7. **异步操作**:在处理大文件或网络流时,使用异步方法可以...