powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выпадающий индекс
10 сообщений из 10, страница 1 из 1
Выпадающий индекс
    #38789526
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть набор узлов. У каждого узла есть индекс. Индексы идут от 1 и увеличиваются на 1 с каждым шагом. При этом некоторые индексы могут выпадать и тогда у узла в атрибутах указывается его индекс.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<root>
  <data>...</data>  <!-- 1 -->
  <data>...</data>  <!-- 2 -->
  <data>...</data>  <!-- 3 -->
  <data index="6">...</data>  <!-- 6 -->
  <data>...</data>  <!-- 7 -->
  <data>...</data>  <!-- 8 -->
  <data index="12">...</data>  <!-- 12 -->
</root>

Есть ли красивый способ узнать индекс текущего узла?

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38789538
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока сделал так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<xsl:template match="Data" mode="index">
  <xsl:variable name="prev" select="preceding-sibling::Data"/>
  <xsl:choose>
    <xsl:when test="@index">
      <xsl:value-of select="@index"/>
    </xsl:when>
    <xsl:when test="not($prev)">
      <xsl:value-of select="1"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="idx">
        <xsl:apply-templates select="$prev[1]" mode="index"/>
      </xsl:variable>
      <xsl:value-of select="$idx + 1"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38789857
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эксель парсишь? :)
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38789902
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyэксель парсишь? :)Его, родимого :))
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819321
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, А можете, описать в чем состоит задача? Заинтриговало, то что EXCEL парсите?
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819552
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2_Vasilisk_, А можете, описать в чем состоит задача? Заинтриговало, то что EXCEL парсите?В xml-формате экселя столбцы могут маркироваться индексами. Четвертый узел <data index="6"> является шестым столбцом, 4й и 5й столбцы будут пустыми. Находясь в контексте произвольного узла data нужно узнать, в каким столбце он окажется. Если есть индекс, значит столбец тот, что в индексе, если нет, значит нужно искать крайний индекс в предыдущих узлах и прибавлять к нему разницу в position().
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819842
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Для эксперимента сохранил простенький EXCEL файл (с двумя столбцами) в формате "Таблица XML 2003".
Получил документ. Вот часть его структуры в которой описываются данные:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="10" x:FullColumns="1"
   x:FullRows="1" ss:DefaultRowHeight="15">
   <Column ss:Index="2" ss:Width="84.75"/>
   <Row>
    <Cell><Data ss:Type="Number">1</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">34</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="Number">2</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">142.80000000000001</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="Number">3</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">599.76</Data></Cell>
   </Row>
  </Table>



Index="2" и больше нигде не встречается. И элемент содержащийся в первом дескрипторе <Row> содержит данные из двух столбцов.

Что тогда означает ваш ответ?
AntonariyYagrus2_Vasilisk_, А можете, описать в чем состоит задача? Заинтриговало, то что EXCEL парсите?Если есть индекс, значит столбец тот, что в индексе.


Еще вопрос. Не получилось сохранить этот же excel в формате "XML-данные". Не подскажете в чем причина?

з.с. справку читал
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819878
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yagrus2Index="2" и больше нигде не встречается. И элемент содержащийся в первом дескрипторе <Row> содержит данные из двух столбцов.Потому и не встречается, что используются лишь первый и второй столбцы. Ширина первого равна экселевкому умолчанию, а ширина второго изменена, поэтому в документ вставлена настройка ширины второго столбца: Column ss:Index="2". Значения же присутствуют во всех ячейках, поэтому опускать пустые и помечать индексом следующие непустые не нужно.

Если использовать первый и третий столбцы, а второй вообще не трогать, то картина будет такая:
Код: xml
1.
2.
3.
4.
 <Column ss:Index="3" ss:Width="84.75"/>

<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell ss:Index="3" ss:StyleID="s62"><Data ss:Type="Number">34</Data></Cell>


Yagrus2Еще вопрос. Не получилось сохранить этот же excel в формате "XML-данные". Не подскажете в чем причина?В том, что это сохранение в xml указанной структуры, а структура указывается с помощью xsd-схемы, которую нужно написать, внедрить и связать с данными.
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819890
Фотография Yagrus2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyYagrus2Еще вопрос. Не получилось сохранить этот же excel в формате "XML-данные". Не подскажете в чем причина?В том, что это сохранение в xml указанной структуры, а структура указывается с помощью xsd-схемы, которую нужно написать, внедрить и связать с данными.
А не поделитесь ссылкой, как связать схему с данными?
...
Рейтинг: 0 / 0
Выпадающий индекс
    #38819903
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне проще скриншотом показать.

Схема добавляется по кнопке "Карты XML". После добавления нужно тупо перетащить поля из окошка справа на нужные колонки.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выпадающий индекс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]