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 ...
随机推荐
- jquery.tmpl的使用
jquery.tmpl是jQuery模板插件,http://plugins.jquery.com/tmpl/ (另外还有一个插件dot.js,不依赖与jquery,性能更佳,使用方法大同小异) 在网页 ...
- 编码不规范之将request传参到sevice中
最近审核团队成员代码,发现确实有很多不规范的地方,其中问题之一就是将request.response.session等参数到传入到sevice层处理,在sevice中通过request对象获取到参数后 ...
- 设置Qt应用程序图标及应用程序名 【转载】
一直以来很纠结给qt应用程序添加图标问题,在网上收过一次,但是感觉不够完整,现将自己的实现过程记录下,以便以后查看: 通过网上的例子知道qt助手中有相关说明: Setting the Applicat ...
- Python 算法之二分查找
二分查找 二分查找又称折半查找 优点是比较次数少,查找速度快,平均性能好 缺点是要求待查表为有序表,且插入删除困难 折半查找方法适用于不经常变动而查找频繁的有序列表. 猜数字游戏 1.生成一个有序列表 ...
- Python网络编程中的select 和 poll I/O复用的简单使用
首先列一下,sellect.poll.epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select ...
- MSDN 学习网站
-MSDN中文网站http://msdn.microsoft.com/zh-cn/-MSDN Webcast 中文网络广播http://msdn.microsoft.com/zh-cn/dd79616 ...
- VS编译linux项目生成静态库并在另一个项目中静态链接的方法
VS2017也推出很久了,在单位的时候写linux的服务端程序只能用vim,这让用惯了IDE的我很难受. 加上想自己撸一套linux上的轮子,决定用VS开工远程编写调试linux程序. 在window ...
- json例子--bai
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- EM算法以及推导
EM算法 Jensen不等式 其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有 \[ \lambda f(x) + (1-\lambda)f(y) ...
- 问题:oracle LISTAGG 连接字符串;结果:Oracle 连接字符串的方法
Oracle 连接字符串的方法 方法一:wmsys.wm_concat(column) 介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型.括号里面 ...