сортировка XML-файла с помощью linq - PullRequest
0 голосов
/ 10 сентября 2009

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

Я хочу отсортировать строки по значению одного столбца (в алфавитном порядке)

Возможно ли это сделать в Linq to Xml? Или XSLT мой единственный вариант?

Спасибо

Камиль

Хорошо, я удалил схему и предоставил часть файла

    <Matrix>
    ...
    <Rows>
      <Row>
        <Visible>1</Visible>
        <Columns>
          <Column>
            <ID>col_f</ID>
            <Value>
            </Value>
          </Column>
          <Column>
            <ID>col_0</ID>
            <Value>r00329</Value>
          </Column>
          <Column>
            <ID>col_1</ID>
            <Value>Gerbera "Ambiance" rosa-creme</Value>
          </Column>
          <Column>
            <ID>col_2</ID>
            <Value>
            </Value>
          </Column>
          <Column>
            <ID>col_dost</ID>
            <Value>Bl... Holland</Value>
          </Column>
          <Column>
            <ID>col_3</ID>
            <Value>0,000</Value>
          </Column>
          <Column>
            <ID>col_5</ID>
            <Value>0,000</Value>
            ...

1 Ответ

1 голос
/ 10 сентября 2009

Сортированные строки могут быть получены следующим образом:

// assume rows is a reference to the <Rows> node
var query = from row in rows.Elements( "Row" )
            let sortValue = (
                from c in row.Element("Columns").Elements("Column")
                where c.Element("ID").Value == "col_1"
                select c.Element("Value").Value
            ).FirstOrDefault()
            orderby sortValue
            select row;

Это даст вам набор элементов «Row», отсортированных по «Value» столбца «col_1».

Отрегулируйте при необходимости.

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