一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

asp.net c#封装的一个xml文件读取类

时间:2022-06-25 06:34:48 编辑:袖梨 来源:一聚教程网

A:在XML文件中有多个集,每个集里面包含多个节点。

B:可根据集的名字的取出这个集合下面的所有节点值

C:可一次性取出所有的节点值

D:其中有一个是无限拓展的就是:表达式

E:把集合读取到一个模型(实体类)当中

getmxl.cs文件

代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace XmlOperation
{
/*
* 使用方法:调用GetCommandByName("指令名") 获取该指令下的所有信息
* XML文件规范:见该本页代码底部
*
* 作者:Andrew
* BLOG:https://www.111cn.net *
*/
class GetMxl
{
XmlNodeList nodeList;
public GetMxl(string xmlFilePath)
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
nodeList = doc.SelectNodes("/Equipment//Command");
}

///


/// 根据指令名获得该组指令的信息
///

/// 指令名
/// 返回该指令的所有信息
public List GetCommandByName(string commandName)
{
foreach (XmlNode xmlNode in nodeList)
{
if (xmlNode["name"].InnerText == commandName)
{
List cmdList = new List();
cmdList.Add(xmlNode["name"].InnerText);
cmdList.Add(xmlNode["value"].InnerText);
cmdList.Add(xmlNode["string"].InnerText);
for (int i = 3; i {
cmdList.Add(xmlNode.ChildNodes[i].InnerText);
}
return cmdList;
}
}
return null;
}

///


/// 获得所有的指令名
///

public string[] Names
{
get
{
string[] names = new string[Count];
for (int i = 0; i {
names[i] = nodeList[i]["name"].InnerText;
}
return names;
}
}

///


/// 获取一共有多少条指令
///

public int Count
{
get
{
return nodeList.Count;
}
}
}
}
/*
*



指令名2
指令值
正确的字符串
表达式1
表达式2
表达式3
表达式4


指令名
指令值
正确的字符串
表达式1
表达式2
表达式3
表达式4
表达式5


*
* 以上是XML文件规范写入
*/

xmcommandMode.cs文件

代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XmlOperation
{
public class XmlCommandModel
{
public XmlCommandModel()
{

}

///


/// 设定XML文件路径,并且根据【指令名】获取一个指令集合对象
///

/// xml文件路径
/// 指令名
public XmlCommandModel(string xmlFilePath,string commandByName)
{
GetMxl getXml = new GetMxl(xmlFilePath);
List cmdList = getXml.GetCommandByName(commandByName);
commandName = cmdList[0];
commandValue = cmdList[1];
commandString = cmdList[2];
commandPuts = new string[cmdList.Count - 3];
for (int i = 3; i {
commandPuts[i - 3] = cmdList[i];
}
}

private string commandName;
///


/// 指令名称
///

public string CommandName
{
get { return commandName; }
set { commandName = value; }
}

private string commandValue;
///


/// 指令值
///

public string CommandValue
{
get { return commandValue; }
set { commandValue = value; }
}
private string commandString;
///
/// 正确的字符串
///

public string CommandString
{
get { return commandString; }
set { commandString = value; }
}

private string[] commandPuts;
///


/// 表达式
///

public string[] CommandPuts
{
get { return commandPuts; }
set { commandPuts = value; }
}
}
}

xmlopt.cs文件

代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XmlOperation
{
public class XmlOpt
{
GetMxl getXml;

///


/// 实例化一个指定路径的实例
///

/// XML文件路径
public XmlOpt(string filePath)
{
this.filePath = filePath;
getXml = new GetMxl(filePath);
}

///


/// 根据指令名获取一个对象
///

/// 指令名
///
public XmlCommandModel GetCommandModelByName(string SelectCommandNmae)
{
XmlCommandModel cmd = new XmlCommandModel(filePath, SelectCommandNmae);
return cmd;
}

///


/// 获取所有指令的对象集合
///

public List GetCommandModelList
{
get
{
List cmdList = new List();
for (int i = 0; i {
XmlCommandModel cmdModel = new XmlCommandModel(filePath, CommandNames[i]);
cmdList.Add(cmdModel);
}
return cmdList;
}
}

///


/// 获取所有的指令名
///

public string[] CommandNames
{
get
{
return getXml.Names;
}
}

///


/// 获取一共多少条指令
///

public int commandCout
{
get
{
return getXml.Count;
}
}

private string filePath;
///


/// 获取已设置的文件路径
///

public string FilePath
{
get { return filePath; }
}
}
}


最后一个简单的配置codetest.snl

代码如下 复制代码
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyXML", "MyXMLMyXML.csproj", "{283858AE-82B4-4411-810F-C6AD19833132}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlOperation", "XmlOperationXmlOperation.csproj", "{9A50C0DB-77F2-4B31-A451-90222CB56E00}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{283858AE-82B4-4411-810F-C6AD19833132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{283858AE-82B4-4411-810F-C6AD19833132}.Debug|Any CPU.Build.0 = Debug|Any CPU
{283858AE-82B4-4411-810F-C6AD19833132}.Release|Any CPU.ActiveCfg = Release|Any CPU
{283858AE-82B4-4411-810F-C6AD19833132}.Release|Any CPU.Build.0 = Release|Any CPU
{9A50C0DB-77F2-4B31-A451-90222CB56E00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9A50C0DB-77F2-4B31-A451-90222CB56E00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9A50C0DB-77F2-4B31-A451-90222CB56E00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9A50C0DB-77F2-4B31-A451-90222CB56E00}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

热门栏目