c# 创建XML文档,解析XML文档
1.静态函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml; namespace httpWebRequest
{
//CreateXMLList
//<?xml version="1.0" encoding="utf-8"?>
//<root>
// <parent>
// <son>
// <name>lady gaga</name>
// <age>50</age>
// </son>
// <son>
// <name>swift</name>
// <age>42</age>
// </son>
// </parent>
//</root> //CreateXML
//<?xml version="1.0" encoding="utf-8"?>
//<root>
// <parent>
// <son>
// <name>swift</name>
// </son>
// </parent>
//</root> public class OperateXML
{
public OperateXML() { } /// <summary>
/// 创建含有大量子节点的
/// </summary>
public static void CreateXMLList(string parentName, string SonName, List<Dictionary<string, string>> XmlNodeInfoList)
{
XmlDocument myXml = new XmlDocument();
//创建声明
XmlDeclaration xd = myXml.CreateXmlDeclaration("1.0", "utf-8", null);
myXml.AppendChild(xd); //创建根结点
XmlElement xmlRoot = myXml.CreateElement("root");
myXml.AppendChild(xmlRoot); //创建 parent
XmlElement parent = myXml.CreateElement(parentName);
xmlRoot.AppendChild(parent); foreach (Dictionary<string, string> xmlNodeInfo in XmlNodeInfoList)
{
//在parent下面创建son
XmlElement son = myXml.CreateElement(SonName);
parent.AppendChild(son); foreach (string key in xmlNodeInfo.Keys)
{
//在son下面创建name
XmlElement name = myXml.CreateElement(key);
name.InnerText = xmlNodeInfo[key];
son.AppendChild(name);
}
} //保存文档
myXml.Save("d:\\test.xml");
} public static void CreateXML()
{
XmlDocument myXml = new XmlDocument();
//创建声明
XmlDeclaration xd = myXml.CreateXmlDeclaration("1.0", "utf-8", null);
myXml.AppendChild(xd); //创建根结点
XmlElement xmlRoot = myXml.CreateElement("root");
myXml.AppendChild(xmlRoot); //创建 parent
XmlElement parent = myXml.CreateElement("parent");
xmlRoot.AppendChild(parent); //在parent下面创建son
XmlElement son = myXml.CreateElement("son");
parent.AppendChild(son); //在son下面创建name
XmlElement name = myXml.CreateElement("name");
name.InnerText = "swift";
son.AppendChild(name); //保存文档
myXml.Save("d:\\test.xml");
} public static List<string> ParseXML(ref string errStr, string path)
{
List<string> nameList = new List<string>(); XmlDocument myXml = new XmlDocument();
try
{
myXml.Load("d:\\test.xml");
}
catch (Exception e)
{
errStr = string.Format("load xml is failed");
return null;
} //string path = "root";
//XmlNode xmlRoot = myXml.SelectSingleNode(path);
//if (xmlRoot == null)
//{
// errStr = string.Format("do not have this path:{0}", path);
// return null;
//} //path = "parent/son";
XmlNodeList xmlNodeList = myXml.SelectNodes(path);
if (xmlNodeList == null || xmlNodeList.Count <= 0)
{
errStr = string.Format("do not have this path:{0}", path);
return null;
} foreach (XmlNode xmlNode in xmlNodeList)
{
string name = xmlNode.InnerText;
nameList.Add(name);
} return nameList;
}
}
}
2.使用
private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> dt = new Dictionary<string, string>() { { "name", "lady gaga" }, { "age", "50" } };
Dictionary<string, string> dt1 = new Dictionary<string, string>() { { "name", "swift" }, { "age", "42" } };
List<Dictionary<string, string>> XmlNodeInfoList = new List<Dictionary<string, string>>();
XmlNodeInfoList.Add(dt);
XmlNodeInfoList.Add(dt1);
OperateXML.CreateXMLList("parent", "son", XmlNodeInfoList);
} private void button2_Click(object sender, EventArgs e)
{
string errStr = string.Empty;
OperateXML.ParseXML(ref errStr,"root/parent/son");
} private void button3_Click(object sender, EventArgs e)
{
OperateXML.CreateXML();
}
c# 创建XML文档,解析XML文档的更多相关文章
- 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 ...
- python 之模块之 xml.dom.minidom解析xml
# -*- coding: cp936 -*- #python 27 #xiaodeng #python 之模块之 xml.dom.minidom解析xml #http://www.cnblogs.c ...
- XML基础+Java解析XML +几种解析方式的性能比较
XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- XPath 文档 解析XMl
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 简介 XPath由W3C的 XPath 1.0 标准描述.本教程通过实例 ...
- 创建xml文件、解析xml文件
1.创建XML文件: import codecs import xml.dom.minidom doc=xml.dom.minidom.Document() print doc root=do ...
- 在C#中使用属性控制 XML 序列化来解析XML
今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...
- Java利用dom4j生成xml文件、解析XML
package com.fq.fanqi; import java.io.File;import java.io.FileWriter;import java.io.IOException;impor ...
- java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class
package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util.Scanner; impo ...
- XML(四)dom4j解析XML
使用dom4j须要导入jar包 jar包下载地址:http://pan.baidu.com/s/1o65jWRw 将dom4j-1.6.1.jar包导入Eclipse book2.xml <?x ...
随机推荐
- Entity Framework中AutoDetectChangesEnabled為false時更新DB方法
Entity Framework初始化時執行: Configuration.AutoDetectChangesEnabled = false; 會將數據庫變為NotTrack模式,也就是不會自動同步对 ...
- angular的$q,defer,promise
$q是Angular的一种内置服务,它可以使你异步地执行函数,并且当函数执行完成时它允许你使用函数的返回值(或异常). 官网:http://docs.angularjs.cn/api/ng/servi ...
- bzoj 2142 礼物——扩展lucas模板
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2142 没给P的范围,但说 pi ^ ci<=1e5,一看就是扩展lucas. 学习材料 ...
- 利用PowerDesigner设计数据库
PowerDesigner非常强大, 可以利用它完成数据库的设计. 1.下载地址:http://pan.baidu.com/s/1DsLrg 2.表设计: 建立概念数据模型(Conceptual Da ...
- python中print的几种用法
python中的print有几种常用的用法: 1. print("first example") 2. print("second", "exampl ...
- JSF中使用f:ajax标签无刷新页面改变数据
ajax本是用在前端的一种异步请求数据的操作,广泛用于js中,一般的js框架如jq都有被封装好的方法,用于发起异步请求操作.异步操作可以增强用户体验和操作,越来越多的程序都在使用ajax.JSF的fa ...
- Linux驱动中获取系统时间
最近在做VoIP方面的驱动,总共有16个FXS口和FXO口依次初始化,耗用的时间较多.准备将其改为多线程,首先需要确定哪个环节消耗的时间多,这就需要获取系统时间. #include <linux ...
- 使用 acl 库针对 C++ 对象进行序列化及反序列编程
在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员).采用 XML.采用SOAP(坑人的设 ...
- Mockito为什么不能mock静态方法
因为Mockito使用继承的方式实现mock的,用CGLIB生成mock对象代替真实的对象进行执行,为了mock实例的方法,你可以在subclass中覆盖它,而static方法是不能被子类覆盖的,所以 ...
- 第九课 go的循环语句
1 for语句的三种形式 /* for 循环 */ ; a < ; a++ { fmt.Printf("a 的值为: %d\n", a) } var a, b int = 1 ...