powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Обработка "сложносочиненного" XML
3 сообщений из 3, страница 1 из 1
Обработка "сложносочиненного" XML
    #35948111
HarDar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

есть XML
следующей структуры
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<ProductionLot productionLotNumber="3361" >
	<SalesDocuments>
		<SalesDocument salesDocumentNumber="102022" orderNumber="17403">
			<SalesDocumentPosition position="0" sortOrder="1" nomenclature="10" >
				<SalesDocumentSubModel subModel="0" />
				<SalesDocumentSubModel subModel="1" />
			</SalesDocumentPosition>
		</SalesDocument>
                ...
		<SalesDocument salesDocumentNumber="218371" orderNumber="17400">
			<SalesDocumentPosition position="0" sortOrder="1" nomenclature="10" >
				<SalesDocumentSubModel subModel="0"/>
				<SalesDocumentSubModel subModel="1"/>
			</SalesDocumentPosition>
			<SalesDocumentPosition position="1" sortOrder="2" nomenclature="20" >
				<SalesDocumentSubModel subModel="0" />
				<SalesDocumentSubModel subModel="1" />
			</SalesDocumentPosition>
		</SalesDocument>
	</SalesDocuments>
	<ProductionSet productionSetNumber="1" >
		<Glasses>
			<Glass number="218371" position="0" subModel="1" reference="Артикель1" width="802" height="902" >
				<Components>
				...
				</Components>
			</Glass>
                        ...
			<Glass number="102022" position="0" subModel="1" reference="Артикель1" width="802" height="902" >
				<Components>
				...
				</Components>
			</Glass>
                        ...
			<Glass number="218371" position="1" subModel="1" reference="Артикель2" width="802" height="902" >
				<Components>
				...
				</Components>
			</Glass>
		</Glasses>
	</ProductionSet>
</ProductionLot>

В общем логика этого документа такая сначала перечисляются все "продажные" документы, из них важны данные:
orderNumber и nomenclature
потом перечисляются собственно "запчасти"
важные данный:
reference, width и height
связь между чайлдами по полям salesDocumentNumber=number и position=position

После обработки должна получится табличка типа

3361

17403
10 Артикель1 802 902

17400
10 Артикель1 802 902
20 Артикель2 802 902

И собственно сложность моя заключается в том что я могу

сделать так

3361

17403
10

17400
10
20

или так
Артикель1 802 902
Артикель1 802 902
Артикель2 802 902

а вот как их связать по полю salesDocumentNumber я не знаю

логика вроде должна быть такая
нашел строчку с salesDocumentNumber - перебери все строчки из Glass и совпадения покажи... но я слишком слаб в XSLT
...
Рейтинг: 0 / 0
Обработка "сложносочиненного" XML
    #35948500
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  <xsl:template match="ProductionLot">
    <xsl:value-of select="@productionLotNumber"/>
    <xsl:apply-templates select="SalesDocuments/SalesDocument"/>
  </xsl:template>

  <xsl:template match="SalesDocument">
    <xsl:value-of select="@orderNumber"/>
    <xsl:apply-templates select="SalesDocumentPosition"/>
  </xsl:template>

  <xsl:template match="SalesDocumentPosition">
    <xsl:value-of select="@nomenclature"/>
    <xsl:apply-templates select="../../../ProductionSet/Glasses/Glass[
      @number = current()/../@salesDocumentNumber and @position = current()/@position]"/>
  </xsl:template>

  <xsl:template match="Glass">
    <xsl:value-of select="@reference"/>
    <xsl:value-of select="@width"/>
    <xsl:value-of select="@height"/>
  </xsl:template>
С уважением, Vasilisk
...
Рейтинг: 0 / 0
Обработка "сложносочиненного" XML
    #35949629
HarDar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое человеческое спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Обработка "сложносочиненного" XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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