2012-05-21 70 views
1

我需要將XML文件的特定部分轉換爲字符串,其中的數據會發生變化。 例如。將XML中的特定變量轉換爲字符串C#

我有在它這部分的XML文件: -<root>-<Data><1>data</1>

,我想只有該行轉換爲字符串,而不是整個文件。這,我知道該怎麼做。我的問題是,「1」中的數據將根據具體情況而變化,我仍然希望能夠使用相同的程序進行轉換,而不管「1」中的數據是什麼。

讀取,而不時變種數據「1」行,我知道我可以使用:

var xml = "<root><Data><1>data</1></Data></root>"; 
var xmlString = XElement.Parse(xml).Descendants("1").FirstOrDefault().Value; 

,但我不知道如何與「1」改變內容做到這一點。

+0

'<1>'元素總是單一的葉子?換句話說,它是否有兄弟姐妹,還是它是「」的唯一子元素? – casperOne

+0

有一點需要注意的是,FirstOrDefault可能返回null,使得.Value調用異常。我只是使用。首先,所以異常更有意義。 –

+0

謝謝,我會注意到@YuriyFaktorovich – User093203920

回答

1
var xml = "<root><Data><One>data</One></Data></root>"; 

var xmlString = (from data in XElement.Parse(xml).Descendants("Data") 
       where data.Descendants().Any() 
       select data.Descendants().First().Value).FirstOrDefault(); 

備註:如果XML元素的名稱以數字開頭,則被認爲是無效的XML,因此XElement將無法解析它。

+0

的唯一孩子,謝謝你指出我不能使用「1」 – User093203920