C#XmlHelper操作Xml文件的幫助類
using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共類 /// </summary> public class XmlHelper { #region 欄位定義 /// <summary> /// XML檔案的物理路徑 /// </summary> private string _filePath = string.Empty; /// <summary> /// Xml文件 /// </summary> private XmlDocument _xml; /// <summary> /// XML的根節點 /// </summary> private XmlElement _element; #endregion #region 構造方法 /// <summary> /// 例項化XmlHelper物件 /// </summary> /// <param name="xmlFilePath">Xml檔案的相對路徑</param> public XmlHelper(string xmlFilePath) { //獲取XML檔案的絕對路徑 _filePath = SysHelper.GetPath(xmlFilePath); } #endregion #region 建立XML的根節點 /// <summary> /// 建立XML的根節點 /// </summary> private void CreateXMLElement() { //建立一個XML物件 _xml = new XmlDocument(); if (DirFile.IsExistFile(_filePath)) { //載入XML檔案 _xml.Load(this._filePath); } //為XML的根節點賦值 _element = _xml.DocumentElement; } #endregion #region 獲取指定XPath表示式的節點物件 /// <summary> /// 獲取指定XPath表示式的節點物件 /// </summary> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> public XmlNode GetNode(string xPath) { //建立XML的根節點 CreateXMLElement(); //返回XPath節點 return _element.SelectSingleNode(xPath); } #endregion #region 獲取指定XPath表示式節點的值 /// <summary> /// 獲取指定XPath表示式節點的值 /// </summary> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> public string GetValue(string xPath) { //建立XML的根節點 CreateXMLElement(); //返回XPath節點的值 return _element.SelectSingleNode(xPath).InnerText; } #endregion #region 獲取指定XPath表示式節點的屬性值 /// <summary> /// 獲取指定XPath表示式節點的屬性值 /// </summary> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> /// <param name="attributeName">屬性名</param> public string GetAttributeValue(string xPath, string attributeName) { //建立XML的根節點 CreateXMLElement(); //返回XPath節點的屬性值 return _element.SelectSingleNode(xPath).Attributes[attributeName].Value; } #endregion #region 新增節點 /// <summary> /// 1. 功能:新增節點。 /// 2. 使用條件:將任意節點插入到當前Xml檔案中。 /// </summary> /// <param name="xmlNode">要插入的Xml節點</param> public void AppendNode(XmlNode xmlNode) { //建立XML的根節點 CreateXMLElement(); //匯入節點 XmlNode node = _xml.ImportNode(xmlNode, true); //將節點插入到根節點下 _element.AppendChild(node); } /// <summary> /// 1. 功能:新增節點。 /// 2. 使用條件:將DataSet中的第一條記錄插入Xml檔案中。 /// </summary> /// <param name="ds">DataSet的例項,該DataSet中應該只有一條記錄</param> public void AppendNode(DataSet ds) { //建立XmlDataDocument物件 XmlDataDocument xmlDataDocument = new XmlDataDocument(ds); //匯入節點 XmlNode node = xmlDataDocument.DocumentElement.FirstChild; //將節點插入到根節點下 AppendNode(node); } #endregion #region 刪除節點 /// <summary> /// 刪除指定XPath表示式的節點 /// </summary> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> public void RemoveNode(string xPath) { //建立XML的根節點 CreateXMLElement(); //獲取要刪除的節點 XmlNode node = _xml.SelectSingleNode(xPath); //刪除節點 _element.RemoveChild(node); } #endregion //刪除節點 #region 儲存XML檔案 /// <summary> /// 儲存XML檔案 /// </summary> public void Save() { //建立XML的根節點 CreateXMLElement(); //儲存XML檔案 _xml.Save(this._filePath); } #endregion //儲存XML檔案 #region 靜態方法 #region 建立根節點物件 /// <summary> /// 建立根節點物件 /// </summary> /// <param name="xmlFilePath">Xml檔案的相對路徑</param> private static XmlElement CreateRootElement(string xmlFilePath) { //定義變數,表示XML檔案的絕對路徑 string filePath = ""; //獲取XML檔案的絕對路徑 filePath = SysHelper.GetPath(xmlFilePath); //建立XmlDocument物件 XmlDocument xmlDocument = new XmlDocument(); //載入XML檔案 xmlDocument.Load(filePath); //返回根節點 return xmlDocument.DocumentElement; } #endregion #region 獲取指定XPath表示式節點的值 /// <summary> /// 獲取指定XPath表示式節點的值 /// </summary> /// <param name="xmlFilePath">Xml檔案的相對路徑</param> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> public static string GetValue(string xmlFilePath, string xPath) { //建立根物件 XmlElement rootElement = CreateRootElement(xmlFilePath); //返回XPath節點的值 return rootElement.SelectSingleNode(xPath).InnerText; } #endregion #region 獲取指定XPath表示式節點的屬性值 /// <summary> /// 獲取指定XPath表示式節點的屬性值 /// </summary> /// <param name="xmlFilePath">Xml檔案的相對路徑</param> /// <param name="xPath">XPath表示式, /// 範例1: @"Skill/First/SkillItem", 等效於 @"//Skill/First/SkillItem" /// 範例2: @"Table[USERNAME='a']" , []表示篩選,USERNAME是Table下的一個子節點. /// 範例3: @"ApplyPost/Item[@itemName='崗位編號']",@itemName是Item節點的屬性. /// </param> /// <param name="attributeName">屬性名</param> public static string GetAttributeValue(string xmlFilePath, string xPath, string attributeName) { //建立根物件 XmlElement rootElement = CreateRootElement(xmlFilePath); //返回XPath節點的屬性值 return rootElement.SelectSingleNode(xPath).Attributes[attributeName].Value; } #endregion #endregion public static void SetValue(string xmlFilePath, string xPath, string newtext) { //string path = SysHelper.GetPath(xmlFilePath); //var queryXML = from xmlLog in xelem.Descendants("msg_log") // //所有名字為Bin的記錄 // where xmlLog.Element("user").Value == "Bin" // select xmlLog; //foreach (XElement el in queryXML) //{ // el.Element("user").Value = "LiuBin";//開始修改 //} //xelem.Save(path); } } }
相關推薦
C#XmlHelper操作Xml文件的幫助類
using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共類 /// </summary>
PHP至Document類操作 xml 文件
fin con 本地服務器 函數 文件 問題解決 contents ont nbsp 今天將項目上傳到服務器後,打開項目發現報錯 Error:undefined function appendChild()。。。。。。,根據提示查看源代碼,發現 new Docume
C#操作Xml文件(刪除)
list 導入 adk new key 操作xml log string void 步驟如下: 1、導入命名空間 system.Xml。 2、創建Xml文檔。 3、加載要讀取的xml文件。 4、SelectSingleNode()進行選中節點。 例子練習。 static
C#讀取xml文件靜態類
col tex oca spa void n) bin log element internal static class XmlUtil { internal static XmlDocument doc; interna
c#讀寫Xml文件
引用 use 記錄 一行 tar desktop for 單個 contacts 寫入xml文件 第一種方法:使用XmlDocument類: Demo1 //通過代碼創建XML文檔 //1、引用命名空間 System.Xml
使用dom4j操作xml文件的增刪改
使用dom4j操作xml文件的增刪改package day2.domx; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import org.dom4j.Document; import
python操作Xml文件
python python操作xml模塊 xml模塊 一、簡單介紹Xml是實現不同語言或程序進行數據交換的協議,跟json差不多,但是xml遠遠先於json出現,例如在很多傳統的金融行業的很多系統接口還主要是xml格式。Xml的格式如下:<Settings modified="20
操作xml文件
foreach text 獲取 文件 console com () line eno //讀取 XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("person.xml")); //加載Xml
JAVASCRIPT中使用DOM操作XML文件(轉)
<script language="JavaScript"><!--var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM") //載入文件//doc.load("
JAXP----DOM方式操作XML文件
import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFact
jaxp解析器用dom方式操作xml文件的總結
1. xml解析技術概述 解析xml文件一般有兩種技術:dom(Document Object Model)和sax(Simple API for XML)。dom即文件物件模型,是W3C組織推薦的處理xml的一種方式;sax不是官方標準,但它是xm
libxml C語言寫xml文件
1. 示例原始碼 #include <stdio.h> #include <string.h> #include <libxml/encoding.h> #include <libxml/xmlwriter.h> #defi
JAXP----SAX操作XML文件
1.SAX解析允許在讀取文件的時候,即對文件進行處理,而不必等到整個文件裝載完才會對文件進行操作!!! sax採用事件處理方式解析XML檔案,涉及解析器和事件處理器 解析器可以使用JAXP的API建立,只要解析到XML文件的一個組成部分,都會去呼叫事件處理器的一個方法,解析
C#對XML文件的各種操作方法
C# XML文件的各種操作方法 內容來自越康體育分享。 XML:Extensible Markup Language(可擴展標記語言)的縮寫,是用來定義其它語言的一種元語言,其前身是SGML(Standard Generalized Markup Language,標準通用標
C#操作CSV文件類實例
thumbnail image node efault gpo padding 多線程同步 如果 str 本文實例講述了C#操作CSV文件類。分享給大家供大家參考。具體分析如下: 這個C#類用於轉換DataTable為CSV文件、CSV文件轉換成DataTable,如果需
c++對properties配置文件操作工具類
c++ properties code源代碼GitHub路徑:源代碼地址下載 最近要使用c++對windows api相關接口的封裝,有2個接口要求讀寫properties文件。原以為網上應該有一大堆資料的,結果拜BAI度的大恩大德,一點相關的資料都沒有。那就只能自己動手豐衣足食。再次感謝十分強大只是找不到相
C#_基礎_文件夾操作類Directory(十七)
刪除文件夾 delet In clas C# AS mov 靜態類 創建文件 1 //using System.IO; 2 ///Directory:操作文件夾/目錄的類,Directory是靜態類 3 ///創建文件
XML文件操作類VXML
存儲 () 相對 reac 打開 轉義字符 -c sys tps 敬告 VXML.cs不是一個通用的類。僅僅是作者為了方便自己的程序編寫。 下載地址 https://github.com/velscode/V-CS-ClassLib 使用說明 目標XML文件,存儲了數據庫連
C#操作Xml:通過XmlDocument讀寫Xml文件
轉自:http://www.cnblogs.com/yukaizhao/archive/2011/07/19/csharp_xmldocument_access_xml.html Xml是擴充套件標記語言的簡寫,是一種開發的文字格式。關於它的更多情況可以通過
C# 利用FTP自動下載xml文件後利用 FileSystemWatcher 監控目錄下文件變化並自動更新數據庫
use img div 進行 ssa reg c# col without using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel;