2010-06-02 43 views
0

讀節點我有一個XML文檔是這樣的:的Linq:的innerText

<ns:a xmlns:ns="http://NS1"> 
    <ns:b> 
    <c xmlns="http://differentNS"> c_text </c> 
    <x xmlns="http://differentNS"> Wanted </x> 
    <d xmlns="http://differentNS"> d_text </d> 
    </ns:b> 
</ns:a> 

現在我想使用LINQ來讀取元素的「X」內部文本。

回答

1

下面是使用LINQ to XML一個可能的實現:

var doc = XDocument.Parse("<ns:a xmlns:ns='http://NS1'><ns:b><c xmlns='http://differentNS'>c_text</c><x xmlns='http://differentNS'>Wanted</x><d xmlns='http://differentNS'>d_text</d></ns:b></ns:a>"); 

XNamespace ns = "http://differentNS"; 
var result = doc.Descendants(ns + "x").Single().Value 

相關資源:

+0

doc.Descendants返回不具有Value屬性的IEnumerable 。我該怎麼做? – Nabo 2010-06-02 16:50:56

+0

你說得對。您需要選擇列表中的單個XElement以提取值。我更新了我的答案。 – 2010-06-03 08:05:58

0

你應該能夠做這樣的事情:

var xDocument = XDocument.Load(yourdocumenthere); 
var myvalue = xDocument.Element("ns:a").element("ns:b").element("c").value; 

這是不使用鏈接,但還是很簡單的。

+0

是的,這很簡單,但只是沒有工作命名空間。如果我寫「ns:a」我收到異常「:':'字符,十六進制值0x3A,不能包含在名稱中。」 – Nabo 2010-06-02 12:37:15