首页 文章

将XML加载到下拉列表C#中

提问于
浏览
0

我是XML和C#的新手 . 我想从XML文件加载包含特定项的下拉列表 . 我想用cityname = City1(Person1,Person2,Person3和Person4)的所有人填写它 . 问题是所有人都在一行中的下拉框中显示,而不是每行上显示一个人 .

请帮我

这是我的XML:

<country>
  <city>
    <cityname>City1</cityname>
    <citynr>111</citynr>
    <person>
      <name>Person1</name>
      <name>Person2</name>
      <name>Person3</name>
      <name>Person4</name>
    </person>
    <major>
      <firstname>Major1firstname</firstname>
      <lastname>Major1lastname</lastname>
    </major>
  </city>

  <city>
    <cityname>City2</cityname>
    <citynr>222</citynr>
    <person>
      <name>Person5</name>
      <name>Person6</name>
      <name>Person7</name>
      <name>Person8</name>
    </person>

    <major>
      <firstname>Major2firstname</firstname>
      <lastname>Major2firstname</lastname>
    </major>
  </city>
</country>

我的代码:

XElement country = XElement.Load(Server.MapPath("myXML.xml"));

XElement city = (
    from p in country.Elements("city")
    where p.Element("cityname").Value == "City1"
    select p
).First();                  

dropDownList.Items.Add(city.Element("person").Value);

1 回答

  • 0

    来自MSDN documentation about XElement.Value

    获取或设置此元素的连接文本内容 .

    根据您的XML结构应该做什么:

    XElement persons = city.Element("person");
    foreach (XElement person in persons.Elements("name"))
    {
        dropDownList.Items.Add(person.Value);
    }
    

相关问题