在for循环中按索引号访问xml元素

时间:2016-03-11 19:07:28

标签: c# xml

如何循环遍历每个元素,而不是重复元素名称,我可以通过索引号访问。

我有foreach循环来获取每个属性值,但在循环中我重复次数。 在foreachloop里面我添加了for循环并找到了总元素数(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 个答案:

答案 0 :(得分:1)

试试这个:

string lienName = lien.Elements().ElementAt(i).Element("name").Value;