2012-09-18 80 views
0

可能重複:
LINQ to XML. How to get some string?如何通過使用Linq to xml中的屬性來獲取元素值?

我的XML響應這個樣子。

<Items> 
    <Item> 
    <ImageSets> 
     <ImageSet Category="Primary"> 
      <SwatchImage> 
      <URL>http://xxx.com/img1.jpg</URL> 
      <Height Units="pixels">30</Height> 
      </SwatchImage> 
      </ImageSet> 

      <ImageSet Category="Variant"> 
      <SwatchImage> 
      <URL>http://xxx.com/img2.jpg</URL> 
      <Height Units="pixels">30</Height> 
      </SwatchImage> 
      </ImageSet> 

      <ImageSet Category="Variant"> 
      <SwatchImage> 
      <URL>http://xxx.com/img3.jpg</URL> 
      <Height Units="pixels">30</Height> 
      </SwatchImage> 
      </ImageSet> 

      </ImageSets> 
      </Item> 
      </Items> 

現在,如何獲得SwatchImage元素的值(URL),如果類別名稱是「Variant」?讓我知道你是否需要更多 信息。

+0

@Reinder。感謝那個鏈接,我在這裏發佈之前嘗試過這個邏輯。但是我的XML響應有點棘手。, –

+0

@Kaf。,好吧,我一定會改進的。, –

回答

1

越來越只爲特定<ImageSet>節點的URL值應該是相當簡單的,用我上面提到的鏈接提供的代碼示例:

XDocument xdoc = XDocument.Load("file.xml"); 

string[] urls = xdoc 
    .XPathSelectElements("//ImageSet[@Category='Variant']/SwatchImage/URL") 
    .Select(n => n.Value) 
    .ToArray(); 
+0

你不需要StringReader和File.ReadAllText來加載xml文檔和XDocument。你也可以編寫XDocument.Load(「file.xml」) – Tomtom

+0

@Tomtom你是如此的正確...我已經更新了我的代碼(是我嘗試過的其他東西的剩餘) –

+0

@Reinder。,謝謝你的重播,但我即將獲得Category =「Variant」的URL ..,請看看xml響應和我問的問題, –

相關問題