从 StringBuilder 解析 C# Xml
我有一个包含 XML 文件内容的 StringBuilder。 XML 文件内有一个名为
的根标记,并包含多个
标记。
我想解析 XML 以读取 s 中标签的值,但不知道该怎么做。
为此我必须使用一些 C# XML 数据类型吗?
提前致谢
I have a StringBuilder with the contents of an XML file. Inside the XML file is a root tag called <root>
and contains multiple <node>
tags.
I'd like to parse through the XML to read values of tags within in s, but not sure how to do it.
Will I have to use some C# XML data type for this?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
如果您希望读取 XML 文件中的所有值,您可以考虑将 XML 反序列化为 C# 数据对象。
在 C# 中将 XML 反序列化为类 obj
If you're looking to read all the values in the XML file , you could look into deserializing the XML into a C# data Object.
Deserializing XML into class obj in C#
是的,我建议您使用 XmlDocument 对象来解析你的字符串的内容。
这是一个打印标签中包含的所有内部文本的示例:
使用 Node 对象成员,您还可以轻松提取所有属性。
Yes, I suggest you use an XmlDocument object to parse the content of your string.
Here is an example who print all inner text contained in your tags:
using Node object members, you can also easily extract all you attributes .
您应该使用
System.Xml< 中提供的类/code>
或
System.Xml.Linq
解析 XML。XDocument
是 XML 的 LINQ 扩展的一部分,如果您需要解析任意结构,则特别容易使用。我建议使用它而不是XmlDocument
(除非您有遗留代码或不在 .NET 3.5 上)。从
StringBuilder
创建XDocument
非常简单:从这里,您可以使用
FirstNode
、Descendents( )
,以及许多其他可用于遍历和检查 XML 结构的属性和方法。由于XDocument
旨在与 LINQ 良好配合,因此您还可以编写如下查询:You should use classes available in either
System.Xml
orSystem.Xml.Linq
to parse XML.XDocument
is part of the LINQ extensions for XML and is particularly easy to use if you need to parse through an arbitrary structure. I would suggest using it rather thanXmlDocument
(unless you have legacy code or are not on .NET 3.5).Creating an
XDocument
from aStringBuilder
is straightforward:From here, you can use
FirstNode
,Descendents()
, and the many other properties and methods available to walk and examine the XML structure. And sinceXDocument
is designed to work well with LINQ, you can also write queries like:如果您只是查找特定命名的节点,则无需将文档加载到内存中,您可以使用 XmlReader 自行处理它。
If you are just looking the specifically named nodes then you don't need to load the document into memory, you can process it yourself with an XmlReader.
使用 XDocument.Parse(...)
use XDocument.Parse(...)
您可以使用多个对象来处理 XML。查看
System.Xml
命名空间中的对象,例如XmlDocument
以及XmlReader
和XmlWriter
系列对象。如果使用 C# 3.0+,请查看 System.Xml.Linq 命名空间和 XDocument 类。There are several objects at your disposal for working with XML. Look at the
System.Xml
namespace for objects such asXmlDocument
as well as theXmlReader
andXmlWriter
families of objects. If using C# 3.0+, look at theSystem.Xml.Linq
namespace and theXDocument
class.