亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#操作xml文件示例

2020-01-24 02:45:14
字體:
來源:轉載
供稿:網友

1. 新增XML文件

復制代碼 代碼如下:

XMLToolV2 _xmlHelper = new XMLToolV2(@"C:/20140311blogs.xml");//xml保存路徑或者讀取路徑
 _xmlHelper.Create("Person", "utf-8");//跟節點名稱:person;encode:utf-8
 XmlElement _person = _xmlHelper.CreateElec("Name", "Yan-Zhiwei");//在跟節點后創建person節點
 _xmlHelper.SetAttribute(_person, "Gender", "Man");//設置person節點屬性Gender
 _xmlHelper.SetAttribute(_person, "Address", "shanghai");//設置person節點屬性Address
 _xmlHelper.Save();//保存xml文件

上述代碼實現效果:

那在Person節點繼續增加節點,實現也很簡單

復制代碼 代碼如下:

_xmlHelper.Create("Person", "utf-8");//跟節點名稱:person;encode:utf-8
XmlElement _person = _xmlHelper.CreateElec("Name", "Yan-Zhiwei");//在跟節點后創建person節點
_xmlHelper.SetAttribute(_person, "Gender", "Man");//設置person節點屬性Gender
_xmlHelper.SetAttribute(_person, "Address", "shanghai");//設置person節點屬性Address
XmlElement _workLh = _xmlHelper.CreateElec(_person, "Work", "shanghai LH");//在person節點下增加work節點
_xmlHelper.SetAttribute(_workLh, "Year", "2013~");//設置work節點屬性Title
XmlElement _workRK = _xmlHelper.CreateElec(_person, "Work", "shanghai Ranking");//在person節點下增加work節點
_xmlHelper.SetAttribute(_workRK, "Year", "2011~2013");//設置work節點屬性Title
_xmlHelper.Save();//保存xml文件

上述代碼實現效果:

2.讀取節點的值,個人感覺xpath方式比linq to xml更為明了方便

復制代碼 代碼如下:

XMLToolV2 _xmlHelper = new XMLToolV2(@"C:/20140311blogs.xml");//xml保存路徑或者讀取路徑
XmlNode _person = _xmlHelper.Select("Person/Name/text()");
Console.WriteLine("Name:" + _person.InnerText);
XmlNode _gender = _xmlHelper.Select("Person/Name[@Gender='Man']");
Console.WriteLine("Gender:" + _gender.Attributes["Gender"].Value);
Console.WriteLine("Address:" + _gender.Attributes["Address"].Value);
Console.WriteLine("-----------------------------");
XmlNodeList _workRecord = _xmlHelper.SelectNodeList("Person/Name/Work");
XMLToolV2.Loop(_workRecord, (XmlNode node) =>
{
    Console.WriteLine("Work:" + node.InnerText + " Year:" + node.Attributes["Year"].Value);
});


上述代碼實現效果:

3.格式化顯示XML

復制代碼 代碼如下:

XMLToolV2 _xmlHelper = new XMLToolV2(@"C:/20140311blogs.xml");//xml保存路徑或者讀取路徑
string _xmlString = _xmlHelper.ShowXml();
Console.WriteLine(XMLToolV2.FormatXml(_xmlString, "utf-8"));


上述代碼實現效果:

4.XMLToolV2源代碼

復制代碼 代碼如下:

public class XMLToolV2
    {
        static string _xmlPath;
        static XmlDocument _xmlDoc { get; set; }
        static XmlElement _xmlRoot;


        public XMLToolV2(string xmlPath)
        {
            _xmlPath = xmlPath;
            LoadXmlDoc();
        }
        public XmlNode Select(string xPath)
        {
            if (string.IsNullOrEmpty(xPath))
                throw new ArgumentNullException("xPath");
            return _xmlDoc.SelectSingleNode(xPath);
        }
        public XmlNodeList SelectNodeList(string xPath)
        {
            if (string.IsNullOrEmpty(xPath))
                throw new ArgumentNullException("xPath");
            return _xmlDoc.SelectNodes(xPath);
        }
        public void Create(string rootName, string encode)
        {
            CreateXmlDoc(rootName, encode);
        }
        private void CreateXmlDoc(string rootName, string encode)
        {
            if (!File.Exists(_xmlPath))
            {
                if (string.IsNullOrEmpty(rootName))
                    throw new ArgumentNullException(rootName);
                _xmlDoc = new XmlDocument();
                XmlDeclaration _xmldecl = _xmlDoc.CreateXmlDeclaration("1.0", encode, null);
                _xmlDoc.AppendChild(_xmldecl);
                _xmlRoot = _xmlDoc.CreateElement("", rootName, "");
                _xmlDoc.AppendChild(_xmlRoot);
            }
        }
        public void LoadXmlDoc()
        {
            if (File.Exists(_xmlPath))
            {
                _xmlDoc = new XmlDocument();
                _xmlDoc.Load(_xmlPath);
                _xmlRoot = _xmlDoc.DocumentElement;
            }
        }
        public void Save()
        {
            if (_xmlDoc != null)
            {
                _xmlDoc.Save(_xmlPath);
            }
        }
        public XmlElement CreateElec(string elecName, string elecValue)
        {
            XmlElement _xElec = CreateElement(_xmlRoot, elecName, elecValue);
            return _xElec;
        }

        private XmlElement CreateElement(XmlNode _xmldocSelect, string elecName, string elecValue)
        {
            if (_xmldocSelect != null)
            {
                XmlElement _xElec = _xmlDoc.CreateElement(elecName);
                _xElec.InnerText = elecValue;
                _xmldocSelect.AppendChild(_xElec);
                return _xElec;
            }
            return null;
        }

        public XmlElement CreateElec(XmlElement xmlParentElec, string elecName, string elecValue)
        {
            if (xmlParentElec != null)
            {
                XmlElement _xElec = CreateElement(xmlParentElec, elecName, elecValue);
                return _xElec;
            }
            return null;
        }
        public void SetAttribute(XmlElement xElement, string attrName, string attrValue)
        {
            if (xElement != null)
            {
                xElement.SetAttribute(attrName, attrValue);
            }
        }
        public int Check(string xpath)
        {
            if (string.IsNullOrEmpty(xpath))
                throw new ArgumentNullException("xpath");
            return SelectNodeList(xpath).Count;
        }
        public string ShowXml()
        {
            if (_xmlDoc != null)
            {
                return _xmlDoc.OuterXml;
            }
            return string.Empty;
        }
        public static string FormatXml(string xmlString, string encode)
        {
            if (string.IsNullOrEmpty(xmlString))
                throw new ArgumentNullException("xmlString");
            if (string.IsNullOrEmpty(encode))
                throw new ArgumentNullException("encode");
            MemoryStream _mstream = new MemoryStream();
            XmlTextWriter _writer = new XmlTextWriter(_mstream, null);
            XmlDocument _xDoc = new XmlDocument();
            _writer.Formatting = Formatting.Indented;

            _xDoc.LoadXml(xmlString);
            _xDoc.WriteTo(_writer);
            _writer.Flush();
            _writer.Close();

            Encoding _encoding = Encoding.GetEncoding(encode);
            string _xmlString = _encoding.GetString(_mstream.ToArray());
            _mstream.Close();
            return _xmlString;
        }
        public static void Loop(XmlNodeList nodeList, Action<XmlNode> xmlNode)
        {
            if (nodeList != null)
            {
                foreach (XmlNode xNode in nodeList)
                {
                    xmlNode(xNode);
                }
            }
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费91在线视频| 欧美激情videoshd| 中文字幕最新精品| 亚洲成人a级网| 国产精品第2页| 欧美午夜xxx| 国产精品久在线观看| 国产香蕉精品视频一区二区三区| 亚洲аv电影天堂网| 国产精品美女网站| 在线观看亚洲区| 国产精品69精品一区二区三区| 日韩精品免费在线播放| 国产丝袜精品第一页| 55夜色66夜色国产精品视频| 亚洲电影免费观看高清完整版在线观看| 国产免费亚洲高清| 91精品国产综合久久久久久蜜臀| 亚洲天堂男人天堂| 欧美精品videos| 91麻豆国产语对白在线观看| 亚洲精品乱码久久久久久按摩观| 亚洲男人天堂网| 亚洲在线免费看| 欧美视频免费在线观看| 色偷偷噜噜噜亚洲男人的天堂| 欧美日韩性视频| 欧美性猛交xxxx久久久| 日韩亚洲精品电影| 国产91精品黑色丝袜高跟鞋| 欧美日韩色婷婷| 国产日韩在线观看av| 欧美日韩加勒比精品一区| 国产精品一区专区欧美日韩| 亚洲曰本av电影| 综合国产在线视频| 国语自产精品视频在免费| 国产精品福利久久久| 久久久999国产精品| 国产99久久久欧美黑人| 国产视频999| 在线观看免费高清视频97| 91高清视频免费观看| 在线免费观看羞羞视频一区二区| 国产有码在线一区二区视频| 久久成年人视频| 亚洲黄色www| 国产精品嫩草影院久久久| 久久久国产影院| 欧美—级a级欧美特级ar全黄| 国外成人性视频| 亚洲人成电影在线观看天堂色| 亚洲性av网站| 日韩在线免费观看视频| 国产欧美一区二区三区四区| 精品亚洲一区二区| 日韩最新免费不卡| 亚洲欧美www| 国产精品入口免费视频一| 久久久精品视频在线观看| 日本中文字幕成人| 国产精品美女网站| 91九色综合久久| 日韩视频免费大全中文字幕| 国产精品视频在线播放| 亚洲福利精品在线| 欧美国产在线视频| 欧美成人免费小视频| 最近2019年中文视频免费在线观看| 成人精品久久一区二区三区| 亚洲a∨日韩av高清在线观看| 91天堂在线视频| 成人精品一区二区三区电影免费| 国产精品久久综合av爱欲tv| 亚洲最大福利视频网站| 亚洲欧美三级在线| 成人美女免费网站视频| 久久在线观看视频| 97视频com| 国产成人亚洲综合| 国产91精品高潮白浆喷水| 亚洲影院在线看| 久久久精品免费视频| 97人人模人人爽人人喊中文字| 欧美丝袜一区二区| 91最新在线免费观看| 亚洲人成电影网站| 亚洲欧美中文字幕| 日韩视频亚洲视频| 日韩精品视频在线免费观看| 在线日韩av观看| 国产成人一区三区| 亚洲片av在线| 中文字幕精品久久久久| 国产精品一区二区三区成人| 久久久久久久色| 78m国产成人精品视频| 欧美国产乱视频| 日韩最新在线视频| 亚洲性无码av在线| 欧美激情一区二区三区成人| 亚洲偷熟乱区亚洲香蕉av| 日韩亚洲一区二区| 欧美日韩成人黄色| 欧美激情国产日韩精品一区18| 国产精品第8页| 91免费看片在线| 精品亚洲精品福利线在观看| 国产精品久久一区主播| 日韩成人在线网站| 欧美日韩国产中文精品字幕自在自线| 国产亚洲美女精品久久久| 亚洲美女www午夜| 一级做a爰片久久毛片美女图片| 久久成人综合视频| 欧美精品在线免费| 中文字幕亚洲欧美| 成人激情视频小说免费下载| 深夜福利日韩在线看| 亚洲国产精品yw在线观看| 国产女精品视频网站免费| 91日韩在线播放| 精品久久香蕉国产线看观看亚洲| 亚洲自拍在线观看| 亚洲精品二三区| 91精品国产综合久久男男| 日韩中文字幕在线视频| 68精品久久久久久欧美| 日韩精品日韩在线观看| 日韩精品免费视频| 日韩成人在线免费观看| 国产成人av在线| 欧美日韩国产一区二区三区| 亚洲精品中文字| 精品亚洲夜色av98在线观看| 欧美精品在线免费| 日韩精品欧美国产精品忘忧草| 国产精品自产拍高潮在线观看| 久久精品电影一区二区| 日韩av网站电影| 亚洲天堂av在线免费| 欧美电影免费看| 色播久久人人爽人人爽人人片视av| 一本一本久久a久久精品综合小说| 在线精品视频视频中文字幕| 亚洲色图狂野欧美| 亚洲高清久久久久久| 欧美一区亚洲一区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲a一级视频| 欧美激情一区二区久久久| 国产精品美女免费看| 国产精品视频26uuu| 91精品久久久久久久久久久久久| 欧美大成色www永久网站婷| 亚洲国产精品999| 国产一区二区久久精品| 成人乱人伦精品视频在线观看| 久久综合网hezyo| 欧美最顶级丰满的aⅴ艳星| 国产69久久精品成人看| 日韩国产欧美精品在线| 不卡av电影院| 91精品视频免费观看|