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

 

 

posted @ 2014-03-01 19:23  s7ven  阅读(10634)  评论(1编辑  收藏  举报