2013-02-13 113 views
0

我知道大家说,在C#来解析XML的最好方法是使用XmlDocument类,并做一些事情,如:解析XML在C#中像JavaScript

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

不过,我LOVE路JavaScript的封装其XML和JSON,可以使用'。'来访问XML或JSON文档中的每个封装级别。即:

的test.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') 

有没有可以解析XML弄成这样或做我必须做它的其他方式的任何C#库?

+1

没有这样的库,因为C#被编译和JS进行解释。如果静态的话,您可以创建可以反序列化XML的类。有一种工具可以从XML生成这样的类。或者你可以使用XDocument - 比自定义类更详细,但比XmlDocument更好 – 2013-02-13 18:35:30

+0

我知道“每个人”都不会说使用XmlDocument。我个人认为使用'XDocument'和LINQ to XML。 – 2013-02-13 18:47:43

回答

0

你可能也想看看一个工具,应该有已包含在您的visual studio安装中:xsd.exe。具体看看/ classes开关。这不是你正在寻找的东西,但它会产生一个类似的语法。

0

如果你想分支到C#和ExpandoObject动态方面,是一个@amazedsaint非常巧妙库,好像你以后:

实施例:

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();