2012-10-15 37 views
1

我已經將xml結構存儲爲一個字符串abcd是否有任何可能的方式使用循環訪問xml值?

string abcd="<xmlstruct> 
    <test> 
     <name>testname</name> 
     <address>testaddress</address> 
     <subject>testsub<subject> 
    </test> 

    <test1> 
     <name>testname1</name> 
     <address>testaddress1</address> 
     <subject>testsub<subject> 
    </test1> 

    <test2> 
     <name>testname2</name> 
     <address>testaddress2</address> 
     <subject>testsub2<subject> 
    </test2> 

    <test3> 
     <name>testname3</name> 
     <address>testaddress3</address> 
     <subject>testsub3<subject> 
    </test3> 


    </xmlstruct>"; 

我檢索從字符串,如XML值,

var xElem = XElement.Parse(abcd); 
string getname = xElem.Element("test").Element("name").Value; 
string getname1 = xElem.Element("test1").Element("name").Value; 
string getname2 = xElem.Element("test2").Element("name").Value; 
string getname3 = xElem.Element("test3").Element("name").Value; 

這是工作fine.My問題是,「是否有任何可能的方式,使循環並得到測試,TEST1 ,test2,test3的值?「

回答

2

您的"test0"的選擇是有點不規則,但是這應該這樣做:

for (int i = 0; i < N; i++) 
{ 
    string suffix = i > 0 ? i.ToString() : ""; 
    string getname = xElem.Element("test"+suffix).Element("name").Value; 
    ... 
} 

但你可能應該考慮更好的XML結構,像

<test id="1"> 
    <name>testname2</name> 
    <address>testaddress2</address> 
    <subject>testsub2<subject> 
</test> 
+0

u能請詳細說明。因爲我是新來處理xml –

+0

我只能說明你什麼時候需要使用它。 –

+0

可能想要將這些'x'改爲'i',反之亦然:p –

相關問題