2012-12-04 43 views
1

我已經和XML這樣的:如何將XML節點的內容保存爲字符串?

<album> 
    <image size="small">http://exaplem/example.jpg</image> 
    <image size="medium">http://exaplem/example.jpg</image> 
    <image size="large"> http://userserve-ak.last.fm/serve/174s/42566323.png </image> 
    <image size="extralarge"> http://exaplem/example.jpg </image> 
</album> 

...我想提取和保存<image size="large">...</image>作爲字符串。

我的目標是獲取提取元素的子文本節點。例如http://userserve-ak.last.fm/serve/174s/42566323.png

我試着

XmlNodeList xnList = xml.SelectNodes("image[@size='large']"); 
foreach (XmlNode xn in xnList) 
{ 
    ..... 
} 

...但我迷路了。

做我需要做的事情的最佳方法是什麼?

+1

你有什麼迄今所做? –

+0

我編輯對不起,第一篇文章。我嘗試使用XmlNodeList xnList = xml.SelectNodes(「image [@ size ='large']」); –

+0

沒有問題。如果你需要社區的幫助,你必須證明至少你試圖做一些事情,這裏的人會幫助你,但他們不會爲你做這項工作。 –

回答

2

這是更好地使用LINQ 2 XML:

假設你已經下面的XML文檔:

</album> 
    <image size="small">http://exaplem/example.jpg</image> 
    <image size="medium">http://exaplem/example.jpg</image> 
    <image size="large"> http://userserve-ak.last.fm/serve/174s/42566323.png </image> 
    <image size="extralarge"> http://exaplem/example.jpg </image> 
</album> 

嘗試是這樣的:

var doc = XDocument.Parse(yourDocumentString); 
var largeImageUrl = doc.Root.Elements("image").Single(image => image.Attribute("size").Value == "large").Value; 
+0

但是xpath不是更簡單嗎? 'var url = doc.XPathSelectElement(「// image [@ size ='large']」)。Value' –

+0

@LB我投贊成XDocument而不是XPath,因爲.NET XPath實現不在2.0規範之上而Linq2Xml則更具功能豐富。 –

+0

'XPathSelectElement'是'XDocument'和'XElement'的擴展方法。仍然Linq2Xml。 –

相關問題