Почему при получении таблицы набора данных xml возвращаются все значения?

В настоящее время у меня есть этот Datagridview, отображающий некоторые данные XML, данные

<?xml version="1.0" encoding="utf-8" ?> 
<survey>
  <floor location="Drill Floor">
    <sign location ="1" ref="OFS-FE01" size="180x180"  Material="RPP" Quantity="2" Backingboard="No"  />
  </floor>
  <floor location="Top Deck">
    <sign location ="2" ref="OFS-FE07" size="180x180"  Material="RPP" Quantity="2" Backingboard="Yes"  />
  </floor>
  </survey>

Здесь я застрял, так как этажей несколько, и мне нужен способ отображать только выбранное местоположение этажа.

    private void Form4_Load(object sender, EventArgs e)
    {
        DataSet dataSet = new DataSet();
        dataSet.ReadXml(@"basicStorage.sws", XmlReadMode.Auto);
        datagridview.DataSource = dataSet.Tables[1].DataSet.Tables[1];
    }

Выше показано, как я загружаю datagridview. Он работает, но получает все места, а я хочу получить его только с определенного этажа.

0
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете предварительно обработать XML-файл, чтобы удалить данные, которые вы не хотите отображать в представлении сетки данных (я предполагаю, что basicStorage.sws - это XML-файл)

Например:

private void Form4_Load(object sender, EventArgs e)
{
    XDocument storedData = XDocument.Load(@"basicStorage.sws");

    // the floor that you want to keep
    string selectedFloor = "Drill Floor";

    // remove everything that isn't the floor we want to keep
    storedData
        .Descendants("floor")
        .Where(a => a.Attribute("location").Value != selectedFloor)
        .Remove();

    // now use the remaining xml to populate the dataset
    DataSet dataSet = new DataSet();
    dataSet.ReadXml(storedData.CreateReader());
    datagridview.DataSource = dataSet.Tables[1].DataSet.Tables[1];
}

Спасибо, что меня не было в офисе несколько дней, поэтому я только что это увидел.

Evan Wrynn 13.08.2018 10:09

Другие вопросы по теме