Загрузить все теги XML-файла в DropDownList - PullRequest
1 голос
/ 26 августа 2009

Я новичок и хочу выбрать файл XML и загрузить его элементы (то есть файл с тегами, такими как <item>, <title> и т. Д.) В DropDownList.

В отдельном TextBox он должен считать и показывать, сколько раз присутствует конкретный тег или элемент.

Когда конкретный элемент выбран из DropDownList, содержимое, описания, включая подэлементы в этом элементе, должны отображаться в TextBox.

Я работаю с ASP.NET и C #.

............................................... .................................................. ...............

Большое спасибо всем, кто прочитал и ответил на мой ответ. Я использую только ASP.Net 3.5.

Точно, я бы объяснил .........

Пример файла XML Файл XML

 <Persons>

Paxton Мюнхен 29 Майк Орландо 33 Элла Луизиана 13 Zach Мюнхен 32 Ingrid Осло 63

Сначала я просматриваю и выбираю этот XML-файл.

Во-вторых, загрузите теги Xml в DropDownlist. то есть. раскрывающийся список должен содержать человек, личность, имя, город и возраст.

   Now on selecting say **Person** the textbox should Display Message as "The XML File has: 5 Person tags" and SHould display all the Contents under Person tags including its subtags.

Например:

<Person>
<Name>Paxton</Name>
<City>Munich</City>
<Age>29</Age>

Майк Орландо 33 Элла Луизиана 13 Zach Мюнхен 32 Ingrid Осло 63

таким образом он должен отображаться и для любых других тегов, таких как имя, город, возраст, люди.

      In the same way for any other XML File that is selected.

Вот мой документ, я не могу загрузить XML теги в выпадающий список.

Плз Помогите мне

1 Ответ

1 голос
/ 26 августа 2009

Ваш вопрос не на 100% ясен, но давайте попробуем.

Во-первых, давайте создадим класс, имеющий свойство ElementName и свойство XElement, которое переопределяет метод ToString (), который мы можем использовать для заполнения раскрывающегося списка ...

  public class displayclass
  {
    public string ElementName { get; set; }
    public XElement Element { get; set; }
    public override string ToString()
    {
      return ElementName;
    }
  }

Затем мы можем легко добавить элементы в комбинированный список с именем элемента в качестве текста, например

//Some Sample Xml
  XElement xe = new XElement("Root",
    new XElement("Customer",
      new XAttribute("Name", "John Smith"),
      new XAttribute("CreditLimit", 1500)),
    new XElement("Employee",
      new XAttribute("Name", "Fred Nerk")),
    new XElement("Employee",
      new XAttribute("Name", "Sally Silverton")));

  var elemList = from x in xe.Elements()
                 select new displayclass { ElementName = x.Name.ToString(), Element = x };
  foreach (var item in elemList)
  {
    comboBox1.Items.Add(item);
  }

Теперь давайте добавим количество элементов в текстовое поле, используя предложение group by в нашем списке ...

  var qry = from dispObj in elemList
            group dispObj by dispObj.ElementName;
  StringBuilder sb = new StringBuilder();
  foreach (var grp in qry)
  {
    int count = grp.Count();
    sb.AppendLine(string.Format("{0}({1})", grp.Key,grp.Count()));
  }
  textBox1.Text = sb.ToString();

И, наконец, давайте добавим обработчик событий к выбранному событию изменения индекса в Combobox, чтобы отобразить содержимое элемента ...

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  displayclass disp = comboBox1.SelectedItem as displayclass;
  if (disp != null)
  {
    textBox2.Text = disp.Element.ToString();
  }
}

Я думаю, что это удовлетворяет вашим требованиям, перечисленным выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...