2016-03-11 2 views
1

Как пропустить каждый элемент, чтобы вместо повторения имен элементов я мог получить доступ по номеру индекса.Доступ к элементу xml по номеру индекса для цикла

У меня есть цикл foreach, чтобы получить каждое значение атрибута, но в цикле повторяю время. внутри foreachloop я добавил для цикла и после нахождения числа общего элемента (totalAttItem). Я хочу использовать это для доступа к каждому элементу по индексу.

Я пробовал это, но не работал.

string lienName = lien.Element[i].Element("name").Value; 

код

var doc = XDocument.Load(path); 
foreach (var lien in doc.Descendants("LIEN_CLAIMANT")) 
{ 
    int totalAttItem = lien.Elements().Count(); 

    for (int i = 0; i < totalAttItem; i++) 
    { 
     string lienName = lien.Element("item0").Element("name").Value; 
     string lienRole = lien.Element("item0").Element("role").Value; 
     string lienAddress = lien.Element("item0").Element("address").Value; 
     string lienStreet = lien.Element("item0").Element("street").Value; 
     string lienCity = lien.Element("item0").Element("city").Value; 

     string lienName1 = lien.Element("item1").Element("name").Value; 
     string lienRole1 = lien.Element("item1").Element("role").Value; 
     string lienAddress1 = lien.Element("item1").Element("address").Value; 
     string lienStreet = lien.Element("item1").Element("street").Value; 
     string lienCity1 = lien.Element("item1").Element("city").Value; 

     string lienName2 = lien.Element("item2").Element("name").Value; 
     string lienRole2 = lien.Element("item2").Element("role").Value; 
     string lienAddress2 = lien.Element("item2").Element("address").Value; 
     string lienStreet2 = lien.Element("item2").Element("street").Value; 
     string lienCity2 = lien.Element("item2").Element("city").Value;            
    } 
} 

ответ

1

Попробуйте это:

string lienName = lien.Elements().ElementAt(i).Element("name").Value; 
Смежные вопросы