C# 如何在.net中使用Windows应用程序将数据插入xml文件?
如何在.net中使用Windows应用程序将数据插入xml文件?关于在.net中使用DOM,有很多文档C# 如何在.net中使用Windows应用程序将数据插入xml文件?,c#,xml,C#,Xml,如何在.net中使用Windows应用程序将数据插入xml文件?关于在.net中使用DOM,有很多文档 你有没有一个具体的例子来说明你想做什么?这样,您将得到更清晰的答案/示例。有很多关于在.NET中使用DOM的文档 你有没有一个具体的例子来说明你想做什么?这样您将得到更清晰的答案/示例。如果您的xml文件不是很大,最简单的选择之一就是使用XmlDocument。只需加载xml并将新的xml节点附加到xml文件中所需的位置 这里是关于XmlDocument的文档: 代码示例: XmlDocume
你有没有一个具体的例子来说明你想做什么?这样,您将得到更清晰的答案/示例。有很多关于在.NET中使用DOM的文档
你有没有一个具体的例子来说明你想做什么?这样您将得到更清晰的答案/示例。如果您的xml文件不是很大,最简单的选择之一就是使用XmlDocument。只需加载xml并将新的xml节点附加到xml文件中所需的位置 这里是关于XmlDocument的文档: 代码示例:
XmlDocument dom = new XmlDocument();
dom.Load("filename");
//Append a new node
XmlElement newNode = dom.CreateElement("NewNode");
dom.DocumentElement.AppendChild(newNode);
每个XmlNode(XmlElement、XmlAttribute、XmlText等)都有不同的方法在xml节点之前插入、之后插入、追加和删除。所以,您可以用DOM做几乎任何事情
在这种情况下,您的xml文件很大,XmlDocument实际上会影响应用程序的性能。我建议结合使用and或。如果xml文件不是很大,最简单的选择之一就是使用XmlDocument。只需加载xml并将新的xml节点附加到xml文件中所需的位置 这里是关于XmlDocument的文档: 代码示例:
XmlDocument dom = new XmlDocument();
dom.Load("filename");
//Append a new node
XmlElement newNode = dom.CreateElement("NewNode");
dom.DocumentElement.AppendChild(newNode);
每个XmlNode(XmlElement、XmlAttribute、XmlText等)都有不同的方法在xml节点之前插入、之后插入、追加和删除。所以,您可以用DOM做几乎任何事情
在这种情况下,您的xml文件很大,XmlDocument实际上会影响应用程序的性能。我建议结合使用and或。这是一个非常普遍的问题。根据您的目标用例,有几种常见的方法
- (使用XmlDocument,适用于.NET 1.1或更高版本)
- (需要.NET 3.5或更高版本)
- (使用XmlDocument,适用于.NET 1.1或更高版本)
- (需要.NET 3.5或更高版本)
这是一个非常普遍的问题。根据您的目标用例,有几种常见的方法
- 这里有一个C#
你可以找到一篇好文章-这里有一篇是给C的#
您可以找到一篇好文章-如果您知道XML的模式(XSD),您可以使用XSD.exe生成类来解析这些XML文件。如果您不知道模式,xsd.exe可以尝试为您推断它
然后很容易向生成的类添加属性(修改原始模式!),或者使用现有属性插入/更改所需内容。这是执行任务的快速方法
如果模式不是太复杂,我会使用XmlSerialization属性手工读/写,因为代码肯定会更干净。只要XML不使用混合模式之类的功能,它就可以工作(XML序列化框架中有一些限制,如果坚持良好的实践,通常并不重要)如果知道XML的模式(XSD),可以使用XSD.exe生成类来解析这些XML文件。如果您不知道模式,xsd.exe可以尝试为您推断它
然后很容易向生成的类添加属性(修改原始模式!),或者使用现有属性插入/更改所需内容。这是执行任务的快速方法
如果模式不是太复杂,我会使用XmlSerialization属性手工读/写,因为代码肯定会更干净。只要XML不使用诸如混合模式之类的特性,它就可以工作(XML序列化框架中有一些限制,如果您坚持良好的实践,通常并不重要)要通过保留架构来修改XML,还是不关心架构修改?要通过保留架构来修改XML,还是不关心架构修改?不关闭FileStream,不在FileStream对象上使用/调用dispose。不关闭FileStream,在FileStream对象上没有正在使用/正在调用的dispose。