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 ...
随机推荐
- java中final用法
1.修饰基础数据成员 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰成常量,不可修改. 2.修饰类或者对象的引用的final 在java中我们无法让对象被修饰为final ...
- (二 )结构ztree的 ajax交互的简单使用
在第一篇的基础上更改,在实际项目中的使用. 一:HTML 代码: <SCRIPT type="text/javascript"> var setting = { asy ...
- extjs控制器调用其他视图的函数实现控件赋值。
- 【转】LTE-NAS过程学习总结
为了从网络得到非接入层服务,网络中非接入层节点必须知道有关UE的信息.为了这个目的,UE不得不发起附属过程,该过程是在UE开机和初始接入网络时必须被执行的. 一旦该过程成功,MME上就会建立好一个该U ...
- MYSQL BENCHMARK()函数
MySQL有一个内置的BENCHMARK()函数,可以测试某些特定操作的执行速度. BENCHMARK(count,expr) BENCHMARK会重复计算expr表达式count次,通过这种方式就可 ...
- 【转】linux平台Redis安装部署
Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ...
- 【SymmetricDS】实现新的数据库方言
2018-04-20 by 安静的下雪天 http://www.cnblogs.com/quiet-snowy-day/p/8890785.html 本文翻译自SymmetricDS官方文档 I ...
- 执行: python manage.py makemigrations报AttributeError: 'str' object has no attribute 'decode'
找到错误代码(line146):query = query.encode(errors='replace') 解决方法:把decode改为encode即可.
- 工作的时候用到spring返回xml view查到此文章亲测可用
spring mvc就是好,特别是rest风格的话,一个 org.springframework.web.servlet.view.ContentNegotiatingViewResolver就可以根 ...
- BitmapCutter.Core 引用步骤
1 将BitmapCutter.Core项目或者dll引用到需要的项目底下. 2 前台页面 <img id="imgPreview1" title="点击上传图片& ...