2013-05-15 82 views
-3

我試圖使用元素名稱檢索屬性ID。無法做到。使用元素名稱獲取屬性ID

<root> 
    <child Id="001">Hello</child> 
</root> 

例如:當我們傳遞的價值它需要提供的屬性ID爲002

任何Hello請幫我提前解決這個

感謝

+3

你可以提供和示例和或代碼樣本你目前的工作與..基於這個問題很難確定你在說什麼,當你說通過值'你好'什麼做你的意思是以及你如何通過它?同時顯示你的代碼 – MethodMan

+1

應該'你好'返回'001'嗎? –

+0

你能告訴我們一個你嘗試過的任何代碼嗎? –

回答

1

什麼版本.NET框架你有權訪問?如果您可以使用Linq來XML檢索屬性名稱應該很容易。

XDocument document = XDocument.Load("path to your xml"); 
XElement element = document.Descendants.FirstOrDefault(x => x.Value == "element name"); 
var attribute = element.Attribute("Id"); 

(僞代碼,也不能保證它的工作原理完全一樣,我沒有時間,現在編譯這個權利,但是一般的想法)

下面是MSDN

1
Using System.Xml.Linq; 

string xml = @"<root><child Id=""001"">Hello</child></root>"; 
XElement element = XElement.Parse(xml); 
var itemName = element.Descendants().FirstOrDefault(n => n.Value == "Hello") 
    .Attribute("Id").Value; 
一個簡單的例子
+0

Where子句似乎不必要,因爲FirstOrDefault提供了一個謂詞,通過它可以過濾元素的值 –

0

Linq + XPath可以在這裏很好地工作。

var xDoc = XDocument.Parse(xml); 
var id = xDoc.XPathSelectElement(String.Format("//*[text()='{0}']", "Hello")) 
       .Attribute("Id").Value;