2013-02-13 105 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();