Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / 2 xml в одином xsl проблемы / 9 сообщений из 9, страница 1 из 1
18.03.2009, 11:28
    #35876047
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
читал, пробовал, не выходит, на примерах работает а в реальном не работает
прошу помогите объединить 2 xml

xml 1

Код: 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.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
<?xml version="1.0" encoding="windows-1251"?>
		<Товары>
			<Товар>
				<Ид>76bd6a6b-61b3-11dc-bcd8-001731f9419e</Ид>
				<Наименование>"Черный ящик"</Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Группы>
					<Ид>76bd6a50-61b3-11dc-bcd8-001731f9419e</Ид>
				</Группы>
				<Картинка>import_files/ 76 /76bd6a6b-61b3-11dc-bcd8-001731f9419e.jpeg</Картинка>
				<ЗначенияРеквизитов>
					<ЗначениеРеквизита>
						<Наименование>ВидНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>ТипНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Полное наименование</Наименование>
						<Значение>"Черный ящик" USB-интерфейс  5  м (до  25  м)</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Вес</Наименование>
						<Значение> 0 </Значение>
					</ЗначениеРеквизита>
				</ЗначенияРеквизитов>
			</Товар>
			<Товар>
				<Ид>af7bccb5-bd73-11d5-be96-005056c00008</Ид>
				<Наименование>ACE-EX560CHMAI К15/ 4 - 160 - 220 / 12 +TVSG0358- 2 </Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Группы>
					<Ид>b0fb0ed8-60ed-11dc- 9279 -001a9230a0c9</Ид>
				</Группы>
				<Картинка>import_files/af/af7bccb5-bd73-11d5-be96-005056c00008.jpeg</Картинка>
				<СтавкиНалогов>
					<СтавкаНалога>
						<Наименование>НДС</Наименование>
						<Ставка> 18 </Ставка>
					</СтавкаНалога>
				</СтавкиНалогов>
				<ЗначенияРеквизитов>
					<ЗначениеРеквизита>
						<Наименование>ВидНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>ТипНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Полное наименование</Наименование>
						<Значение>ACE-EX560CHMAI, К15/ 4 - 160 - 220 / 12 , TVSG0358- 2  , C/CS,  1 / 3 ”, f= 3 . 5 - 8  мм,  73 , 8 - 35 , 0  гр/горизонт, F  1 . 4 - 360 , вариообъектив, АРД (Video),  36 ,0х47,1Х48, 1  мм,  75 , 0  г</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Вес</Наименование>
						<Значение> 0 </Значение>
					</ЗначениеРеквизита>
				</ЗначенияРеквизитов>
			</Товар>
			<Товар>
				<Ид>0e91d6b8-8b93-11dd-94cb-001a9230a0c9</Ид>
				<Наименование>ADV02806GNB</Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Группы>
					<Ид>97bd9436-5f86-11dc-bcd3-001731f9419e</Ид>
				</Группы>
				<Картинка>import_files/0e/0e91d6b8-8b93-11dd-94cb-001a9230a0c9.jpeg</Картинка>
				<СтавкиНалогов>
					<СтавкаНалога>
						<Наименование>НДС</Наименование>
						<Ставка> 18 </Ставка>
					</СтавкаНалога>
				</СтавкиНалогов>
				<ЗначенияРеквизитов>
					<ЗначениеРеквизита>
						<Наименование>ВидНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>ТипНоменклатуры</Наименование>
						<Значение>Товар</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Полное наименование</Наименование>
						<Значение>Объектив с автоматической регулировкой ADV02806GNB</Значение>
					</ЗначениеРеквизита>
					<ЗначениеРеквизита>
						<Наименование>Вес</Наименование>
						<Значение> 0 </Значение>
					</ЗначениеРеквизита>
				</ЗначенияРеквизитов>
			</Товар>
       </Товары>

xml 2

Код: 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.
43.
44.
45.
46.
47.
48.
49.
50.
<?xml version="1.0" encoding="windows-1251"?>
		<Предложения>
			<Предложение>
				<Ид>76bd6a6b-61b3-11dc-bcd8-001731f9419e</Ид>
				<Наименование>"Черный ящик"</Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Цены>
					<Цена>
						<Представление> 4   060  RUB за шт</Представление>
						<ИдТипаЦены>9d84711a-7c70-11dc-bd0a-001731f9419e</ИдТипаЦены>
						<ЦенаЗаЕдиницу> 4060 </ЦенаЗаЕдиницу>
						<Валюта>RUB</Валюта>
						<Единица>шт</Единица>
						<Коэффициент> 1 </Коэффициент>
					</Цена>
				</Цены>
				<Количество> 0 </Количество>
			</Предложение>
			<Предложение>
				<Ид>af7bccb5-bd73-11d5-be96-005056c00008</Ид>
				<Наименование>ACE-EX560CHMAI К15/ 4 - 160 - 220 / 12 +TVSG0358- 2 </Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Цены>
					<Цена>
						<Представление> 5   566  RUB за шт</Представление>
						<ИдТипаЦены>9d84711a-7c70-11dc-bd0a-001731f9419e</ИдТипаЦены>
						<ЦенаЗаЕдиницу> 5566 </ЦенаЗаЕдиницу>
						<Валюта>RUB</Валюта>
						<Единица>шт</Единица>
						<Коэффициент> 1 </Коэффициент>
					</Цена>
				</Цены>
				<Количество> 0 </Количество>
			</Предложение>
			<Предложение>
				<Ид>0e91d6b8-8b93-11dd-94cb-001a9230a0c9</Ид>
				<Наименование>ADV02806GNB</Наименование>
				<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
				<Цены>
					<Цена>
						<Представление> 977  RUB за шт</Представление>
						<ИдТипаЦены>9d84711a-7c70-11dc-bd0a-001731f9419e</ИдТипаЦены>
						<ЦенаЗаЕдиницу> 977 </ЦенаЗаЕдиницу>
						<Валюта>RUB</Валюта>
						<Единица>шт</Единица>
						<Коэффициент> 1 </Коэффициент>
					</Цена>
				</Цены>
				<Количество> 0 </Количество>
			</Предложение>
    </Предложения>

Пытаюсь сделать таблицу вида

КАРТИНКА НАИМЕНОВАНИЕ
ЦЕНА

тупо объединяю но не работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     version="1.0">
  <xsl:output method="xml" omit-xml-declaration="yes"/>

  <xsl:template match="Товары">
  <Цена>
      <xsl:apply-templates select="xml2.xml"/>
      <xsl:apply-templates/>
   </Цена>	  
  </xsl:template>
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
...
Рейтинг: 0 / 0
18.03.2009, 11:50
    #35876157
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
читать про функцию document
...
Рейтинг: 0 / 0
18.03.2009, 12:14
    #35876247
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Прошу прощения не
<xsl:apply-templates select="xml2.xml"/>
а
<xsl:apply-templates select="document ('xml2.xml')"/>

я уже читал и пробовал
Подскажи в чем ошибка
...
Рейтинг: 0 / 0
19.03.2009, 08:37
    #35878225
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Вот наверное устал все работает
вот проблема не могу сравнить по Ид
Если ставиш цикл по второму xml

<xsl:for-each select="$doc2/Предложения/Предложение">

то внутри цикла не сравнить с первым xml по ид
как быть подскажите
...
Рейтинг: 0 / 0
19.03.2009, 08:39
    #35878229
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Вот наверное устал все работает
вот проблема не могу сравнить по Ид
Если ставиш цикл по второму xml

<xsl:for-each select="$doc2/Предложения/Предложение">

то внутри цикла не сравнить с первым xml по ид
как быть подскажите
...
Рейтинг: 0 / 0
19.03.2009, 23:23
    #35880551
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
1)
Код: plaintext
<xsl:for-each select="$doc2/Предложения/Предложение = current()/id">
2)
Код: plaintext
1.
<xsl:variable name="id" select="id"/>
<xsl:for-each select="$doc2/Предложения/Предложение = $id">

С уважением, Vasilisk
...
Рейтинг: 0 / 0
20.03.2009, 08:45
    #35880789
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Ночь не прошла безуспешно НО
XSLT Error: The expression does not evaluate to a node-set.Source tree node:
Крутил вертел смысл понял а на практике не получилось
...
Рейтинг: 0 / 0
20.03.2009, 09:05
    #35880814
Koshurin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Во вот так получилось
<xsl:variable name="id" select="Ид"/>
<xsl:for-each select="$doc2/Предложения/Предложение[Ид = $id]">

Спасибо
...
Рейтинг: 0 / 0
20.03.2009, 22:40
    #35882993
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 xml в одином xsl проблемы
Ну да, конечно. Опечатался. Нужно так
1)
Код: plaintext
<xsl:for-each select="$doc2/Предложения/Предложение[Ид = current()/Ид]">
2)
Код: plaintext
1.
<xsl:variable name="id" select="id"/>
<xsl:for-each select="$doc2/Предложения/Предложение[Ид = $id]">

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


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