如何在c#中生成有效的XML ?
当前回答
为了简单起见,我只使用System.XML中找到的XmlDocument/XmlNode/XmlAttribute类和XmlDocument DOM。
它为我生成XML,我只需要链接几个项目在一起。
但是,对于较大的内容,我使用XML序列化。
其他回答
对于简单的情况,我还建议查看XmlOutput——用于构建Xml的流畅接口。
XmlOutput非常适合用于创建具有可读和可维护代码的简单Xml,同时生成有效的Xml。最初的帖子有一些很好的例子。
如上所述。
我使用stringbuilder.append()。
非常简单,然后可以使用xmldocument。加载(stringbuilder对象作为参数)。
你可能会发现自己在使用字符串。Concat,但这是一种非常直接的方法。
为了简单起见,我只使用System.XML中找到的XmlDocument/XmlNode/XmlAttribute类和XmlDocument DOM。
它为我生成XML,我只需要链接几个项目在一起。
但是,对于较大的内容,我使用XML序列化。
我尝试过的最好的方法是LINQ to XSD(大多数开发人员都不知道这一点)。您给它一个XSD Schema,它就会在后台为您生成一个完美映射的、完整的强类型对象模型(基于LINQ到XML),这非常容易操作——它实时更新和验证您的对象模型和XML。虽然它仍然是“预览”,我没有遇到任何错误与它。
如果你的XSD模式是这样的:
<xs:element name="RootElement">
<xs:complexType>
<xs:sequence>
<xs:element name="Element1" type="xs:string" />
<xs:element name="Element2" type="xs:string" />
</xs:sequence>
<xs:attribute name="Attribute1" type="xs:integer" use="optional" />
<xs:attribute name="Attribute2" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
然后你可以像这样简单地构建XML:
RootElement rootElement = new RootElement;
rootElement.Element1 = "Element1";
rootElement.Element2 = "Element2";
rootElement.Attribute1 = 5;
rootElement.Attribute2 = true;
或者像这样简单地从文件中加载XML:
RootElement rootElement = RootElement.Load(filePath);
或者这样保存:
rootElement.Save(string);
rootElement.Save(textWriter);
rootElement.Save(xmlWriter);
rootElement。un类型化也产生XElement形式的元素(从LINQ到XML)。
XmlWriter是编写良好XML的最快方法。XDocument, XMLDocument和其他一些也很好,但没有为编写XML进行优化。如果希望尽可能快地编写XML,那么肯定应该使用XmlWriter。
推荐文章
- HTTP POST返回错误:417“期望失败。”
- 如何在。net中创建和使用资源
- 为什么Path。以Path.DirectorySeparatorChar开头的文件名合并不正确?
- 如何在c#中获得正确的时间戳
- Linq选择列表中存在的对象(A,B,C)
- c# .NET中的App.config是什么?如何使用它?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 更好的方法将对象转换为int类型
- 我可以将c#字符串值转换为转义字符串文字吗?
- 在c#中转换char到int
- c#中朋友的对等物是什么?
- 关键字使用virtual+override vs. new
- 在ASP中选择Tag Helper。NET Core MVC
- 如何在没有任何错误或警告的情况下找到构建失败的原因