1.静态函数

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6.  
  7. namespace httpWebRequest
  8. {
  9. //CreateXMLList
  10. //<?xml version="1.0" encoding="utf-8"?>
  11. //<root>
  12. // <parent>
  13. // <son>
  14. // <name>lady gaga</name>
  15. // <age>50</age>
  16. // </son>
  17. // <son>
  18. // <name>swift</name>
  19. // <age>42</age>
  20. // </son>
  21. // </parent>
  22. //</root>
  23.  
  24. //CreateXML
  25. //<?xml version="1.0" encoding="utf-8"?>
  26. //<root>
  27. // <parent>
  28. // <son>
  29. // <name>swift</name>
  30. // </son>
  31. // </parent>
  32. //</root>
  33.  
  34. public class OperateXML
  35. {
  36. public OperateXML() { }
  37.  
  38. /// <summary>
  39. /// 创建含有大量子节点的
  40. /// </summary>
  41. public static void CreateXMLList(string parentName, string SonName, List<Dictionary<string, string>> XmlNodeInfoList)
  42. {
  43. XmlDocument myXml = new XmlDocument();
  44. //创建声明
  45. XmlDeclaration xd = myXml.CreateXmlDeclaration("1.0", "utf-8", null);
  46. myXml.AppendChild(xd);
  47.  
  48. //创建根结点
  49. XmlElement xmlRoot = myXml.CreateElement("root");
  50. myXml.AppendChild(xmlRoot);
  51.  
  52. //创建 parent
  53. XmlElement parent = myXml.CreateElement(parentName);
  54. xmlRoot.AppendChild(parent);
  55.  
  56. foreach (Dictionary<string, string> xmlNodeInfo in XmlNodeInfoList)
  57. {
  58. //在parent下面创建son
  59. XmlElement son = myXml.CreateElement(SonName);
  60. parent.AppendChild(son);
  61.  
  62. foreach (string key in xmlNodeInfo.Keys)
  63. {
  64. //在son下面创建name
  65. XmlElement name = myXml.CreateElement(key);
  66. name.InnerText = xmlNodeInfo[key];
  67. son.AppendChild(name);
  68. }
  69. }
  70.  
  71. //保存文档
  72. myXml.Save("d:\\test.xml");
  73. }
  74.  
  75. public static void CreateXML()
  76. {
  77. XmlDocument myXml = new XmlDocument();
  78. //创建声明
  79. XmlDeclaration xd = myXml.CreateXmlDeclaration("1.0", "utf-8", null);
  80. myXml.AppendChild(xd);
  81.  
  82. //创建根结点
  83. XmlElement xmlRoot = myXml.CreateElement("root");
  84. myXml.AppendChild(xmlRoot);
  85.  
  86. //创建 parent
  87. XmlElement parent = myXml.CreateElement("parent");
  88. xmlRoot.AppendChild(parent);
  89.  
  90. //在parent下面创建son
  91. XmlElement son = myXml.CreateElement("son");
  92. parent.AppendChild(son);
  93.  
  94. //在son下面创建name
  95. XmlElement name = myXml.CreateElement("name");
  96. name.InnerText = "swift";
  97. son.AppendChild(name);
  98.  
  99. //保存文档
  100. myXml.Save("d:\\test.xml");
  101. }
  102.  
  103. public static List<string> ParseXML(ref string errStr, string path)
  104. {
  105. List<string> nameList = new List<string>();
  106.  
  107. XmlDocument myXml = new XmlDocument();
  108. try
  109. {
  110. myXml.Load("d:\\test.xml");
  111. }
  112. catch (Exception e)
  113. {
  114. errStr = string.Format("load xml is failed");
  115. return null;
  116. }
  117.  
  118. //string path = "root";
  119. //XmlNode xmlRoot = myXml.SelectSingleNode(path);
  120. //if (xmlRoot == null)
  121. //{
  122. // errStr = string.Format("do not have this path:{0}", path);
  123. // return null;
  124. //}
  125.  
  126. //path = "parent/son";
  127. XmlNodeList xmlNodeList = myXml.SelectNodes(path);
  128. if (xmlNodeList == null || xmlNodeList.Count <= 0)
  129. {
  130. errStr = string.Format("do not have this path:{0}", path);
  131. return null;
  132. }
  133.  
  134. foreach (XmlNode xmlNode in xmlNodeList)
  135. {
  136. string name = xmlNode.InnerText;
  137. nameList.Add(name);
  138. }
  139.  
  140. return nameList;
  141. }
  142. }
  143. }

  2.使用

  1.     private void button1_Click(object sender, EventArgs e)
  2. {
  3. Dictionary<string, string> dt = new Dictionary<string, string>() { { "name", "lady gaga" }, { "age", "50" } };
  4. Dictionary<string, string> dt1 = new Dictionary<string, string>() { { "name", "swift" }, { "age", "42" } };
  5. List<Dictionary<string, string>> XmlNodeInfoList = new List<Dictionary<string, string>>();
  6. XmlNodeInfoList.Add(dt);
  7. XmlNodeInfoList.Add(dt1);
  8. OperateXML.CreateXMLList("parent", "son", XmlNodeInfoList);
  9. }
  10.  
  11. private void button2_Click(object sender, EventArgs e)
  12. {
  13. string errStr = string.Empty;
  14. OperateXML.ParseXML(ref errStr,"root/parent/son");
  15. }
  16.  
  17.      private void button3_Click(object sender, EventArgs e)
  18. {
  19. OperateXML.CreateXML();
  20. }

  

c# 创建XML文档,解析XML文档的更多相关文章

  1. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  2. python 之模块之 xml.dom.minidom解析xml

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 之模块之 xml.dom.minidom解析xml #http://www.cnblogs.c ...

  3. XML基础+Java解析XML +几种解析方式的性能比较

    XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...

  4. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  5. XPath 文档 解析XMl

    http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 简介 XPath由W3C的 XPath 1.0 标准描述.本教程通过实例 ...

  6. 创建xml文件、解析xml文件

        1.创建XML文件: import codecs import xml.dom.minidom doc=xml.dom.minidom.Document() print doc root=do ...

  7. 在C#中使用属性控制 XML 序列化来解析XML

    今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...

  8. Java利用dom4j生成xml文件、解析XML

    package com.fq.fanqi; import java.io.File;import java.io.FileWriter;import java.io.IOException;impor ...

  9. java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class

    package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util.Scanner; impo ...

  10. XML(四)dom4j解析XML

    使用dom4j须要导入jar包 jar包下载地址:http://pan.baidu.com/s/1o65jWRw 将dom4j-1.6.1.jar包导入Eclipse book2.xml <?x ...

随机推荐

  1. BZOJ4358:permu

    浅谈\(K-D\) \(Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline ...

  2. Python:内置split()方法

    描述 Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 语法 split()方法语法: str.split(str="&qu ...

  3. java代码String创建对象数组,进行排序

    总结:String是一个类.对于字串大小比较用方法:compareTo() package com.da.ima2; public class gh { public static void main ...

  4. wpf数据验证实例及常用方法小结

    虽然标题是wpf数据验证,但并不是对IDataErrorInfo.ValidationRule.属性中throw Exception这几种验证方式的介绍: 之前做项目时(例如员工工资管理),根据员工编 ...

  5. 一张图看懂------left join;right join;inner join

  6. iOS按home键后程序的状态变化

    iOS 的应用里的几种状态: active: 应用在前台正常运行 background: 应用在后台,并且在执行代码. inactive: 这个状态是应用从一个状态向另一个状态的过渡 suspende ...

  7. CreateMutex实现只能打开一个客户端

    #include "stdafx.h" #include <Windows.h> #include <iostream> using namespace s ...

  8. 什么是SPU、SKU、SKC、ARPU

    首先,搞清楚商品与单品的区别.例如,iphone是一个单品,但是在淘宝上当很多商家同时出售这个产品的时候,iphone就是一个商品了. 商品:淘宝叫item,京东叫product,商品特指与商家有关的 ...

  9. java 多线程系列基础篇(七)之线程休眠

    1. sleep()介绍 sleep() 定义在Thread.java中.sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”.sleep()会指定休眠时间,线 ...

  10. 问题:C#属性;结果:c# 属性

    c# 属性 属性:get { //读属性代码 } set { //写属性代码 } public class Person{private string name;public string Name{ ...