我操縱原始XML已經很長時間了。我已經使用了XmlDocument並記住了一些名爲XDocument的開始,但是那是幾年前的事。 M $在這幾天推薦什麼?什麼Xml操作組件應該與.Net 4一起使用?
在此先感謝
我操縱原始XML已經很長時間了。我已經使用了XmlDocument並記住了一些名爲XDocument的開始,但是那是幾年前的事。 M $在這幾天推薦什麼?什麼Xml操作組件應該與.Net 4一起使用?
在此先感謝
XDocument
是XML LINQ的一部分 - 這是絕對什麼我使用XML的99%的工作,這些天。我們可以看到,LINQ to XML不像LINQ to SQL那樣是一個真正的LINQ提供者,例如,它是一個XML API,它被設計爲可以很好地與LINQ to對象。它支持一個聲明性的構造模型,它的查詢非常適合LINQ to Objects,使您能夠非常容易地找到元素,屬性等。
哦,它的命名空間的支持是赫然簡單:
XNamespace ns = "http://some.url.here";
XElement element = new XElement(ns + "elementName");
基本上它是一個可愛的 - 它打敗使用的XmlDocument和XmlReader中就相形見絀了,在大多數情況下。有時XmlReader
可能對流式傳輸效率很有用,但您可以從XmlReader
創建一個XElement
,它將只讀取「當前」元素,並將XmlReader
定位在該元素之後。這允許使用LINQ to XML的好處來進行「結構化流式傳輸」,只要您一次只需要一個元素(當然還有任何子元素)。
關於eidylon的答案:C#不支持XML文字;它認爲語言不應直接涉及XML等特定技術。你認爲多大的交易是個人的事情:)
哪種語言?在VB.NET中,推薦的方法是使用XML文字和相關的道具/方法。
例如:
Dim x = XElement.Parse("<some valid xml string>")
Console.WriteLine(x.<someNode>.<someChild>.value)
將寫出來的someChild節點的下someNode根目錄下的值。 我不確定C#是否具有可以直接查詢這樣或不是這樣的節點/屬性的相同構造。