2014-04-13 35 views
-1

我有一個問題,如果有代碼讀取XML設置,如:葛亭串<atribute> = <value>從XML

<length>5</length> 
<height>10</heigth> 

我怎樣才能獲得在C#

for (i = 0; i < atributesInFile; i++) 
{ 
    <atribute> = <atribute>.innertext; 
} 

因此,這將像

length = 5; 
height = 10; 

我希望你明白我的意思:)

+0

你能顯示有效的XML嗎? –

+0

你是什麼意思,你真的想動態創建基於XML的局部變量嗎?這對我來說沒有多大意義。 – svick

+0

要點是,當我有很多設置時,我想簡短地說明一下代碼,就像循環讀取代碼一樣。 – Taurib

回答

0

可以聲明它代表了XML的類:

public class MyType 
    { 
     public int Height { get; set; } 
     public int Length { get; set; } 
    } 

那麼做到這一點:

 var xmlSerializer = new XmlSerializer(typeof (MyType)); 
     using (var reader = new XmlTextReader(@"location")) 
     { 
      var myType = (MyType) xmlSerializer.Deserialize(reader); 
     } 
+0

我不明白,爲什麼你的代碼反序列化的XML,然後覆蓋讀取值? – svick

+0

這不是重要的部分..只是想表明你可以使用強類型類型。 –

0

如果你的XML是這樣

<settings> 
<length>5</length> 
<height>10</height> 
</settings> 

你可以做

var xdoc = XDocument.Load(pathtoxml); 

foreach (var setting in xdoc.Descendants("settings")) 
{ 
var line = setting.Name + " = " + setting.Value + ";"; 
// display line 
} 
+0

啊..一些代碼格式問題與我的瀏覽器..假設一個設置元素包含您的XML –