0

我知道每个人都说在 C# 中解析 XML 的最佳方法是使用 XmlDocument 类并执行以下操作:

XmlNodeList list = xmlDoc.getElementsByTagName('tag');

但是,我喜欢JavaScript 封装其 XML 和 JSON 的方式,其中 XML 或 JSON 文档中的每一级封装都可以使用“.”来访问。IE:

测试.xml

<item>
 <title>Title</title>
 <desc>
    <meta>MetaData</meta>
    <content>Ipsum Lorem</content>
 </desc>
 <date>1/1/2013</date>
</item>

在 javasript 中,我可以解析这个 XML 文件并将其分配给一个对象 var obj。然后我可以做类似的事情:

obj.item[0].title ( 'Title' )
obj.item[0].desc.meta ('MetaData')

是否有任何 C# 库可以将 XML 解析成这样的东西,还是我必须以其他方式来做?

4

3 回答 3

1

不完全相同,但这种方法(将 XML 读入动态对象)在本质上是相似的:

http://www.codeproject.com/Articles/436406/Power-of-Dynamic-Reading-XML-and-CSV-files-made-ea

于 2013-02-13T18:35:57.477 回答
0

您可能还想看一下应该包含在您的 Visual Studio 安装中的工具:xsd.exe。具体看一下 /classes 开关。它不是您正在寻找的东西,但它会产生类似的语法。

于 2013-02-13T18:40:37.377 回答
0

如果您想进入 C# 和 的动态方面, @amazedsaint 提供ExpandoObject了一个非常聪明的库,看起来就像您所追求的那样:

例子:

dynamic item = new ElasticObject("item");
item.Title = "Title";
item.Desc = new { Meta = "Metadata", Content="Lorem Ipsum" };
XElement asXml = item > FormatType.Xml;

// and from xml:
dynamic itemFromXml = asXml.ToElastic();
于 2013-02-13T18:55:07.290 回答