English 中文(简体)
管理 XML 文档
原标题:Manage XML document
  • 时间:2012-05-24 19:09:51
  •  标签:
  • .net
  • xml

I can not find an easy way to do what I m asking for. I have an object:

public class Item
{
    public string Name { get; set; }
}

我想:

(1) 创建 xml 文档 :

<?xml version="1.0" encoding="utf-8"?>
<Items>
  <Item Name="Item1"/>
  <Item Name="Item2"/>
</Items>

(2) 读取 xml 文档:

for each NodeT node in MyXMLDocument
{
    Item i = new Item(node);
}

3) 管理 xml 文档,例如删除项目1并添加项目3(或更改属性值)

<?xml version="1.0" encoding="utf-8"?>
<Items>
  <Item Name="Item2"/>
  <Item Name="Item3"/>
</Items>

How can I do this as simply as possible? Thanks.

最佳回答

在我看来, XML 序列化是最简便的方式, 尽管您需要为 加密

您可以将对象序列成字符串, 然后将其保存到文件 :

string ToXml(object instance)
{
    XmlSerializer serializer = new XmlSerializer(instance.GetType());
    StringBuilder builder = new StringBuilder();

    using (StringWriter writer = new StringWriter(builder))
    {
        serializer.Serialize(writer, instance);
        return builder.ToString();
    }
}

从 XML 到.NET 对象读取它们时, 只需要调用 Desrialize 。 您也可以使用属性自定义对象, 必要时使用属性, 允许您选择它们如何出现在 XML 中 。

问题回答

使用 Linq 到 XML :

< a href=>""http://msdn.microsoft.com/en-us/library/bb387061.aspx" rel="无跟随" >MSDN - Linq to XML

< a href=" "http://www.codeproject.com/articles/24376/LINQ-to-XML" rel="nofollow">LINQ to XML





相关问题
Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How do I compare two decimals to 10 decimal places?

I m using decimal type (.net), and I want to see if two numbers are equal. But I only want to be accurate to 10 decimal places. For example take these three numbers. I want them all to be equal. 0....

Exception practices when creating a SynchronizationContext?

I m creating an STA version of the SynchronizationContext for use in Windows Workflow 4.0. I m wondering what to do about exceptions when Post-ing callbacks. The SynchronizationContext can be used ...

Show running instance in single instance application

I am building an application with C#. I managed to turn this into a single instance application by checking if the same process is already running. Process[] pname = Process.GetProcessesByName("...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签