在循环中使用带有XpathSelectElement的Xpath

时间:2013-05-30 06:10:15

标签: c# linq

for(int sp_range = int.Parse(myParser.GetKey("SP_Range")); sp_range < int.Parse(myParser.GetKey ("EP_Range")); sp_range++)
{
  cboPort.Items.Add(sp_range.ToString());

  main.XPathSelectElement("//ip_addresses").SetAttributeValue("id", sp_range.ToString());

  main.Save(xmlpath);
}

我循环遍历一个设定的数字范围,因为我正在循环,我正在递增一个迭代器我希望迭代器1到59的值在我的xml文档中作为id值添加它保存id值但是只添加一个名为ip_addresses的元素而不是添加到所有ip_addresses子元素,它只将它添加到一个迭代器的最后一个计数值为59所以我使用正确的Xpath获取命名元素ip_addresses的所有子元素但是它只访问父的第一个子元素Row。

1 个答案:

答案 0 :(得分:1)

for (int sp_range = int.Parse(myParser.GetKey("SP_Range")); sp_range < int.Parse(myParser.GetKey("EP_Range")); sp_range++)
{
    cboPort.Items.Add(sp_range.ToString()); //Adds the load of values

    foreach (XElement xml in main.XPathSelectElements("/Row/ip_addresses"))
    {
        xml.SetAttributeValue("id", sp_range++);//You have to re-iterate for the set# Nodes
    }

}

main.Save(xmlpath);

如果你需要知道如何做到这一点我觉得这很棒,