文档解析之XML文档读取
来源:互联网 发布:嵌入式无人机软件 编辑:程序博客网 时间:2024/06/04 21:56
XML操作
概念:XML指可扩展标记语言
XML被设计用来传输和存储数据,XML被设计用来结构化、存储以及传输信息
XML文档必须包含根元素,该元素是所有其他元素的父元素
XML文档中的元素形成一颗文档树,这棵树从根部开始,并扩展到树的最底端
XML语法规则
所有的XML元素都必须有关闭标签
<p>This is a paragaph<p>
XML标签对大小写敏感,标签<Letter>与标签<letter>
<Message>这是错误的</message>
<message>这是正确的</message>
XML必须正确的嵌套
<b><i>This text is bold and italic</b></i>
<b><i>This text is bold and italic</i></b>
XML文档必须有根元素
<root>
<child>
<subchild>....<subchild>
<child>
<root>
XML的属性必须加引号
<note date=08/08/2008>
<to>George</to>
<from>John</from>
XML元素必须遵循一下命名规则:
1、名称可以含字母、数字以及其他字符
2、名称不能以数字或者标点符号开始
3、名称不能以字符"xml"(或者XML、Xml)开始
4、名称不能包含空格
手写一个XML文档
利用VS添加一个文本文档,在文本文档上点右键选择打开方式,在弹出的对话框中选择XML文本编辑器
利用VS在文本文档中写入如下数据
<skills>//开始节点
<skill>
<id>2</id>
<name lang="cn">天下无双</name>
<damage>100</damage>
</skill>
<skill>
<id>3</id>
<name lang="cn">小二黑</name>
<damage>236</damage>
</skill>
<skill>
<id>4</id>
<name lang="cn">光头强</name>
<damage>456</damage>
</skill>
</skills>//结束节点
XML文档解析
1、首先创建一个技能类Skill
class Skill
{
public int ID { get; set; }
public string Name { get; set; }
public string Lang { get; set; }
public int Damage { get; set; }
public override string ToString()
{
return $"ID: {ID}, Name: {Name}, Lang: {Lang}, Damage: {Damage}";
}
}
2、在主函数中解析XML文本
class Program
{
static void Main(string[] args)
{
//创建技能信息集合,用来存储所有的技能信息
List<Skill> skillList = new List<Skill>();
XmlDocument xmlDoc = new XmlDocument();
//xmlDoc.Load("TextFile1.txt");//选择要加载解析的XML文档
xmlDoc.LoadXml(File.ReadAllText("TextFile1.txt"));//传递一个xml格式的字符串
//得到根节点
XmlNode rootNode = xmlDoc.FirstChild;//获取第一个节点
//得到根节点下面的子节点的集合
XmlNodeList skillNoteList = rootNode.ChildNodes;//获取获取当前节点下面的所有子节点
//遍历所有节点
foreach (XmlNode skillNote in skillNoteList)
{
Skill skill = new Skill();//创建一个技能类对象
XmlNodeList filedNoteList = skillNote.ChildNodes;//获取Skill节点下面的所有节点
foreach (XmlNode fieldNode in filedNoteList)
{
if (fieldNode.Name == "id")//通过Name获取一个节点的名字
{
int id = Int32.Parse(fieldNode.InnerText); //获取节点内部的文本
skill.ID = id;//把字符串赋值给文本
}else if (fieldNode.Name=="name")
{
string name = fieldNode.InnerText;//获取节点内部的文本
skill.Name = name;
skill.Lang = fieldNode.Attributes[0].Value;
}else
{
skill.Damage=Int32.Parse(fieldNode.InnerText);
}
}
skillList.Add(skill);//将技能信息加到集合中
}
foreach (Skill skill in skillList)//遍历输出所有技能信息
{
Console.WriteLine(skill);
}
Console.ReadKey();
}
}
本文源自SIKI的教程系列,感谢siki
0 0
- 文档解析之XML文档读取
- JavaScript解析读取XML文档
- JavaScript 解析读取XML文档
- JavaScript 解析读取XML文档
- 读取XML文档解析信息
- 文档解析之JSON文档的读取
- 文档解析之txt文档的读取
- XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
- xml教程之java解析xml文档
- XML文档解析之dom4j解析案例
- Java解析xml文档之SAX解析
- Java解析xml文档之STAX解析
- XML文档解析之DOM解析
- XML文档解析之SAX解析
- XML文档解析之JDOM解析
- XML文档解析之DOM4J解析
- java读取xml文档之sax方式
- 文档解析之Excel策划文档的读取
- su root 与 su - root 的区别
- 用split()根据选项卡在url后面添加锚值
- 用service启动nginx
- 配置根据时间自动配置build
- java kettle 初步
- 文档解析之XML文档读取
- caffe增加自己的layer实战(中)--caffe学习(11)
- Linux平台的SVN服务器的配置及搭建
- LeetCode 1 Two Sum
- Android 系列 5.1使用自定义字体
- window.history
- 蓝桥杯-字母图形
- 好玩的数据集
- ubuntu 14.04 阿里云软件源