c# XElement XML操作總結


c# XElement XML操作總結

 

 

以前也操作過xml,但是都是簡單的功能,要么就是創建一個xml,要么就是從現有的xml讀取。也記錄了相關的操作,文章為:c# 讀寫xml文件操作。但最近的項目需要對相關的xml內容進行相關的操作,如添加、刪除等。所以在這里對本次項目關於xml的測試大體總結一下。

測試主要功能有:
1.讀取xml
2.遍歷xml
3.添加元素
4.查找元素
5.修改元素
6.刪除元素
7.創建xml

主要使用的類為XElement。使用的xml為

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <Book>
    <Title>圖書1</Title>
    <Author>作者1</Author>
  </Book>
  <Book>
    <Title>圖書2</Title>
    <Author>作者2</Author>
  </Book>
  <Book>
    <Title>圖書3</Title>
    <Author>作者3</Author>
  </Book>
</Books>


使用的文件路徑

private readonly string _path = string.Format("{0}\\test.xml", Environment.CurrentDirectory);

 

1.讀取xml

XElement file = XElement.Load(_path);
textBox1.Text = file + Environment.NewLine;

2.遍歷xml

textBox1.Clear();
XElement file = XElement.Load(_path);
foreach (XElement book in file.Descendants("Book"))
{
    XElement title = book.Element("Title");
    XElement author = book.Element("Author");
    textBox1.AppendText(string.Format("{0}:{1}", title.Value, author.Value) + Environment.NewLine);
}

3.添加元素

XElement file = XElement.Load(_path);
textBox1.Text = file + Environment.NewLine;
var node = new XElement("Book", new XElement("Title", "圖書3"), new XElement("Author", "作者3"));
file.Add(node);
textBox1.Text = file.ToString();

4.查找元素

XElement file = XElement.Load(_path);
XElement book1 = file.Descendants("Book")
    .Where(x => x.Element("Title").Value == "圖書1").SingleOrDefault();
textBox1.Text = book1.ToString();

5.修改元素

XElement file = XElement.Load(_path);
XElement element = file.Descendants("Book")
    .Where(x => x.Element("Title").Value == "圖書1")
    .SingleOrDefault();
element.Element("Title").Value = "圖書";
element.Element("Author").Value = "作者";
textBox1.Text = file.ToString();

6.刪除元素

XElement file = XElement.Load(_path);
file.Descendants("Book")
    .Where(x => x.Element("Title").Value == "圖書1")
    .SingleOrDefault().Remove();
textBox1.Text = file.ToString();

7.創建xml
msdn 官方提供的代碼。

var contacts =
    new XElement("Contacts",
                    new XElement("Contact",
                                new XElement("Name", "Patrick Hines"),
                                new XElement("Phone", "206-555-0144"),
                                new XElement("Address",
                                            new XElement("Street1", "123 Main St"),
                                            new XElement("City", "Mercer Island"),
                                            new XElement("State", "WA"),
                                            new XElement("Postal", "68042")
                                    )
                        )
        );
textBox1.Text = contacts.ToString();

下載測試代碼:XMLTest

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM