using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Windows.Forms; namespace MyCommanHelper
{
public class XMLHelper
{ #region 读取节点值 /// <summary>
/// 读取节点值
/// </summary>
/// <param name="doc"></param>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <returns></returns>
public static string XmlReadValue(XmlDocument doc, string Section, string Key)
{
XmlNode result = doc.SelectSingleNode(Section);
string ss = "";
if (null != result)
{
ss = result.SelectSingleNode(Key).InnerText;
}
return ss;
} /// <summary>
/// 获取二层小结下的键值
/// </summary>
/// <param name="doc"></param>
/// <param name="Section"></param>
/// <param name="subSection"></param>
/// <param name="Key"></param>
/// <returns></returns>
public static string XmlReadValue(XmlDocument doc, string Section, string subSection, string Key)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
XmlNodeList childnodes = result.ChildNodes;
for (int i = 0; i < childnodes.Count; i++)
{
XmlNode node = childnodes[i];
if (node.LocalName.Equals(subSection))
{
return node.SelectSingleNode(Key).InnerText;
}
}
}
return "";
}
catch
{
return "";
}
} /// <summary>
/// 获取三层小结下的键值
/// </summary>
/// <param name="doc"></param>
/// <param name="Section"></param>
/// <param name="subSection"></param>
/// <param name="sub2Section"></param>
/// <param name="Key"></param>
/// <returns></returns>
public static string XmlReadValue(XmlDocument doc, string Section, string subSection, string sub2Section, string Key)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
XmlNodeList parentNodes = result.ChildNodes;
for (int i = 0; i < parentNodes.Count; i++)
{
XmlNode node = parentNodes[i];
if (node.LocalName.Equals(subSection))
{
XmlNodeList childNodes = node.ChildNodes;
for (int j = 0; j < childNodes.Count; j++)
{
XmlNode subNode = childNodes[j];
if (subNode.LocalName.Equals(sub2Section))
{
return subNode.SelectSingleNode(Key).InnerText;
}
}
}
}
}
return "";
}
catch (Exception)
{
return "";
}
} /// <summary>
/// 获取四层小结下的键值
/// </summary>
/// <param name="doc"></param>
/// <param name="Section"></param>
/// <param name="subSection"></param>
/// <param name="sub2Section"></param>
/// <param name="sub3Section"></param>
/// <param name="Key"></param>
/// <returns></returns>
public static string XmlReadValue(XmlDocument doc, string Section, string subSection, string sub2Section, string sub3Section, string Key)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
XmlNodeList childnodes = result.ChildNodes;
for (int i = 0; i < childnodes.Count; i++)
{
XmlNode node = childnodes[i];
if (node.LocalName.Equals(subSection))
{
XmlNodeList subNodeList = node.ChildNodes;
for (int j = 0; j < subNodeList.Count; j++)
{
XmlNode subNode = subNodeList[j];
if (subNode.LocalName.Equals(sub2Section))
{
XmlNodeList sub2NodeList = subNode.ChildNodes;
for (int k = 0; k < sub2NodeList.Count; k++)
{
XmlNode sub2Node = sub2NodeList[k];
if (sub2Node.LocalName.Equals(sub3Section))
{
return sub2Node.SelectSingleNode(Key).InnerText;
}
}
}
}
}
}
}
return "";
}
catch
{
return "";
}
} #endregion #region 写入节点值 /// <summary>
/// 写入节点值
/// </summary>
/// <param name="doc"></param>
/// <param name="sXMLPath"></param>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Value"></param>
public static void XmlWriteValue(XmlDocument doc, string sXMLPath, string Section, string Key, string Value)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null == result)
{
result = (XmlNode)doc.CreateElement(Section);
doc.AppendChild(result); XmlNode subNode = doc.CreateElement(Key);
subNode.InnerText = Value;
result.AppendChild(subNode);
}
else
{
XmlNode subNode = result.SelectSingleNode(Key);
if (null == subNode)
{
subNode = doc.CreateElement(Key);
subNode.InnerText = Value;
result.AppendChild(subNode);
}
else
{
subNode.InnerText = Value;
}
} doc.Save(sXMLPath);
}
catch (System.Exception ex)
{
MessageBox.Show("写入节点值错误! " + ex.Message);
}
} public static void XmlWriteValue(XmlDocument doc, string sXMLPath, string Section, string subSection, string Key, string Value)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null == result)
{
result = (XmlNode)doc.CreateElement(Section);
doc.AppendChild(result); XmlElement subEle = doc.CreateElement(subSection);
result.AppendChild(subEle); XmlElement sub2Ele = doc.CreateElement(Key);
sub2Ele.InnerText = Value;
subEle.AppendChild(sub2Ele);
}
else
{
XmlNode subEle = result.SelectSingleNode(subSection);
if (null == subEle)
{
subEle = doc.CreateElement(subSection);
result.AppendChild(subEle); XmlElement sub2Ele = doc.CreateElement(Key);
sub2Ele.InnerText = Value;
subEle.AppendChild(sub2Ele);
}
else
{
XmlNode sub2Ele = subEle.SelectSingleNode(Key);
if (null == sub2Ele)
{
sub2Ele = doc.CreateElement(Key);
sub2Ele.InnerText = Value;
subEle.AppendChild(sub2Ele);
}
else
{
sub2Ele.InnerText = Value;
}
}
}
}
catch (System.Exception ex)
{
MessageBox.Show("写入节点值错误! " + ex.Message);
}
} public static void XmlWriteValue(XmlDocument doc, string sXMLPath, string Section, string subSection, string sub2Section, string Key, string Value)
{
try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null == result)
{
result = (XmlNode)doc.CreateElement(Section);
doc.AppendChild(result);
}
XmlNode subEle = result.SelectSingleNode(subSection);
if (null == subEle)
{
subEle = doc.CreateElement(subSection);
result.AppendChild(subEle);
} XmlNode sub2Ele = result.SelectSingleNode(sub2Section);
if (null == sub2Ele)
{
sub2Ele = doc.CreateElement(sub2Section);
subEle.AppendChild(sub2Ele);
} XmlNode sub3Ele = subEle.SelectSingleNode(Key);
if (null == sub3Ele)
{
sub3Ele = doc.CreateElement(Key);
sub3Ele.InnerText = Value;
sub2Ele.AppendChild(sub2Ele);
}
else
{
sub3Ele.InnerText = Value;
} doc.Save(sXMLPath);
}
catch (System.Exception ex)
{
MessageBox.Show("写入节点值错误! " + ex.Message);
}
} public static void XmlWriteValue(XmlDocument doc, string sXMLPath,string Section, string subSection, string sub2Section,string sub3Section, string Key, string Value)
{ try
{
XmlNode result = doc.SelectSingleNode(Section);
if (null == result)
{
result = (XmlNode)doc.CreateElement(Section);
doc.AppendChild(result);
}
XmlNode subEle = result.SelectSingleNode(subSection);
if (null == subEle)
{
subEle = doc.CreateElement(subSection);
result.AppendChild(subEle);
} XmlNode sub2Ele = result.SelectSingleNode(sub2Section);
if (null == sub2Ele)
{
sub2Ele = doc.CreateElement(sub2Section);
subEle.AppendChild(sub2Ele);
} XmlNode sub3Ele = result.SelectSingleNode(sub3Section);
if (null == sub2Ele)
{
sub3Ele = doc.CreateElement(sub3Section);
sub2Ele.AppendChild(sub3Ele);
} XmlNode sub4Ele = subEle.SelectSingleNode(Key);
if (null == sub3Ele)
{
sub4Ele = doc.CreateElement(Key);
sub4Ele.InnerText = Value;
sub3Ele.AppendChild(sub2Ele);
}
else
{
sub4Ele.InnerText = Value;
} doc.Save(sXMLPath);
}
catch (System.Exception ex)
{
MessageBox.Show("写入节点值错误! " + ex.Message);
}
} #endregion #region 修改节点值 /// <summary>
/// 修改节点值
/// </summary>
/// <param name="doc"></param>
/// <param name="sXMLPath"></param>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Value"></param>
public static void XmlEditValue(XmlDocument doc, string sXMLPath, string Section, string Key, string Value)
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
if (Value == "")
{
result.SelectSingleNode(Key).InnerText = "无";
}
else
{
result.SelectSingleNode(Key).InnerText = Value;
}
}
doc.Save(sXMLPath);
} public static void XmlEditValue(XmlDocument doc, string sXMLPath, string Section, string sValue1, string Key, string Value)
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
XmlNodeList childnodes = result.ChildNodes;
for (int i = 0; i < childnodes.Count; i++)
{
XmlNode node = childnodes[i];
if (node.LocalName.Equals(sValue1))
{
if (Value == "")
{
node.SelectSingleNode(Key).InnerText = "无";
}
else
{
node.SelectSingleNode(Key).InnerText = Value;
}
}
}
}
doc.Save(sXMLPath);
} public static void XmlEditValue(XmlDocument doc, string sXMLPath,
string Section, string sValue1,
string sValue2, string Key, string Value)
{
XmlNode result = doc.SelectSingleNode(Section);
if (null != result)
{
XmlNodeList parentNodes = result.ChildNodes;
for (int ii = 0; ii < parentNodes.Count; ii++)
{
XmlNode node = parentNodes[ii];
if (node.LocalName.Equals(sValue1))
{
XmlNodeList childNodes = node.ChildNodes;
for (int i = 0; i < childNodes.Count; i++)
{
XmlNode node2 = childNodes[i];
if (node2.LocalName.Equals(sValue2))
{
if (Value == "")
{
node2.SelectSingleNode(Key).InnerText = "无";
}
else
{
node2.SelectSingleNode(Key).InnerText = Value;
}
}
}
}
}
}
doc.Save(sXMLPath);
} public static void XmlEditValue(XmlDocument doc, string sXMLPath,
string Section, string sValue1, string sValue2,
string sValue3, string Key, string Value)
{
XmlNode node = doc.SelectSingleNode(Section);
if (null != node)
{
XmlNodeList childNodes = node.ChildNodes;
for (int i = 0; i < childNodes.Count; i++)
{
XmlNode node2 = childNodes[i];
if (node2.LocalName.Equals(sValue1))
{
XmlNodeList list2 = node2.ChildNodes;
for (int j = 0; j < list2.Count; j++)
{
XmlNode node3 = list2[j];
if (node3.LocalName.Equals(sValue2))
{
XmlNodeList list3 = node3.ChildNodes;
for (int k = 0; k < list3.Count; k++)
{
XmlNode node4 = list3[k];
if (node4.LocalName.Equals(sValue3))
{
if (Value == "")
{
node4.SelectSingleNode(Key).InnerText = "无";
}
else
{
node4.SelectSingleNode(Key).InnerText = Value;
}
}
}
}
}
}
}
}
doc.Save(sXMLPath);
}
#endregion }
}
 public void createXml(double meters)
{
XmlDocument xml = new XmlDocument();
//xml文件的相对路径
string stringPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf('\\')) + "\\searchStation.xml";
if (!System.IO.File.Exists(stringPath))
{
System.IO.FileStream fileStream = new System.IO.FileStream(stringPath, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite);
fileStream.Close();
System.IO.File.WriteAllText(stringPath, "<?xml version=\"1.0\"?><ROOT><AREA>"+meters.ToString()+"</AREA></ROOT>");
}
xml.Load(stringPath);
XmlNode nodes = xml.DocumentElement;
foreach (XmlNode item in nodes.ChildNodes)
{
if (item.Name == "AREA")
{
item.InnerText = meters.ToString();
}
}
xml.Save(stringPath);
}

更多:https://i.cnblogs.com/EditPosts.aspx?postid=3673944

C#:xml操作(待补充)的更多相关文章

  1. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  2. T-Sql(五)xml操作

    t-sql中的xml操作在我们平时做项目的过程中用的很少,因为我们处理的数据量很少,除非一些用到xml的地方,t-sql中xml操作一般用在数据量很大,性能优化的地方,当然我在平时做项目的时候也是没用 ...

  3. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  4. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  5. 简单的XML操作类

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  6. .net学习笔记---xml操作及读写

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  7. C#常用操作类库三(XML操作类)

    /// <summary> /// XmlHelper 的摘要说明. /// xml操作类 /// </summary> public class XmlHelper { pr ...

  8. php xml 操作。

    参考 文章:http://www.cnblogs.com/zcy_soft/archive/2011/01/26/1945482.html DOMDocument相关的内容. 属性: Attribut ...

  9. XML Helper XML操作类

    写的一个XML操作类,包括读取/插入/修改/删除. using System;using System.Data;using System.Configuration;using System.Web ...

  10. 我的PHP之旅--XML操作

    XML操作 XML主要是做数据存储和WEB服务的,所以我们难免要操作它,这里只介绍PHP的simpleXML方式. 我们要操作的XML: <?xml version="1.0" ...

随机推荐

  1. POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题

    http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...

  2. Use a TL431 shunt regulator to limit high ac input voltage

    Most isolated, offline SMPSs (switched-mode power supplies), including flyback, forward, and resonan ...

  3. MC34063组成DC-DC电路

    +VO的输出电压峰值可达2倍V_IN,-VO的输出电压可达-V_IN. 需要注意的是,3路的峰值电路不能超过1.5A,同时两路附加电源的输出功率和必须小于V_IN·I·(1-D), 其中I为主输出的电 ...

  4. Framebuffer重要结构体说明

    l  fb_var_screeninfo:记录了帧缓冲设备和指定显示模式的可修改记录.包括屏幕的分辨率,像素信息和一些时序变量 struct fb_var_screeninfo { __u32 xre ...

  5. 【java】java工具类StringUtils,org.apache.commons.lang3.StringUtils

    使用过程中,发现StringUtils工具类功能非常的多. 例如,判断元素是否为数字: StringUtils.isNumeric(string)

  6. appium+python自动化60-windows上同时启动多个appium服务,让多个android机器并行运行

    前言 做android自动化的时候,启动一个appium服务,只能匹配一个手机去自动化执行.有时候想同一套代码,可以在不同的手机上执行,测下app在不同手机上兼容性. 这就需要启动多个appium服务 ...

  7. 显示所有环境变量:env 或者 printenv

    显示所有环境变量:env 或者 printenv

  8. Python的__getattribute__ vs __getattr__的妙用

    这里的属性即包括属性变量,也包括属性方法.即类的变量和方法. 当访问某个实例属性时, getattribute会被无条件调用,如未实现自己的getattr方法,会抛出AttributeError提示找 ...

  9. Linux文件系统---用户与内核的交互接口

    从磁盘到数据,从数据到文件,从文件到目录,从目录到文件系统,从文件系统到操作系统.构成了计算机中的IO读写机制. 整个磁盘可以分为1个MBR(Master Boot Record)和4个partiti ...

  10. 如何用代码方式获取Web.config中system.serviceModel/client节点的address

    以下代码GetAPIAddress将返回:http://localhost:2555/APITEST.asmx using System.Web.Configuration;using System. ...