powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как зменить id его значением?
12 сообщений из 12, страница 1 из 1
Как зменить id его значением?
    #36993630
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello world))

Есть xml база в которой записан тэг
<categoryId>11111</categoryId>
тому коду соответствует запись
<category id="111111" parentId="222222">Педагогам</category>

можно ли как то заменить числовое значение буквенным, что б было вот так
<categoryId>Педагогам</categoryId>

естественно по всей базе, база на 20000 записей, в ручную менять муторошно, а категорий штук 500.
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #36994283
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<!-- -->
	<xsl:key match="//category" name="key_category" use="@id"/>
	<!-- -->
	<xsl:template match="*">
		<xsl:copy>
			<xsl:choose>
				<xsl:when test="name()='categoryId'">
					<xsl:value-of select="key('key_category',text())/text()"/>
				</xsl:when>
				<xsl:otherwise>
					<xsl:apply-templates select="* | @* | text()"/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:copy>
	</xsl:template>
	<!-- -->
	<xsl:template match="@* | text()">
		<xsl:copy-of select="."/>
	</xsl:template>
</xsl:stylesheet>

Если есть несколько пространств имен, может не сработать...
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #36994417
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
refreg,

Вау, не кидайтесь камнями, но с xml столкнулся первый раз,тут и скрипты писать можно, . а скажите где запускать такой скрипт?

Конечно понимаю что это школьный вопрос, по этому буду благодарен ссылке, где почитать.
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #36995043
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где этот добрый человек, который мне помог?

Спасибо!
Спасибо!
Спасибо!

Все получилось, отпишитесь мне, есть к Вам предложение ICQ 317 пятьсот 290
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37037759
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще один вопрос, некоторые записи имеют двойную запись

<category id="1111" parentId="2222">Педагогам</category>
<category id="3333" parentId="2222">Юристам</category>


<categoryId>1111</categoryId>
<categoryId>3333</categoryId>

после трансформации они имеют вид

<categoryId>ПедагогамЮристам</categoryId>

а можно сделать что б эти две записи раздилялись, например точкой с запятой(;), вот так

<categoryId>Педагогам;Юристам</categoryId>

Спасибо!
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038250
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
99cents,

На этот вопрос трудно дать ответ. Слишком до многого приходится догадываться. Покажи типовой XML,
и упрощенный, так чтобы была видна твоя проблема, XSL.
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038323
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот кусок кода, надеюсь так понятней?

<categories>
<category id="12293">Английский</category>
<category id="1074793" parentId="12293">Фринцузкий</category>
<category id="1075045" parentId="12293">Китайский</category>
</categories>
<offers>
<offer id="83912" type="book" available="false">
<price>78</price>
<currencyId>RUR</currencyId>
<categoryId>12328</categoryId>
<delivery>true</delivery>
<orderingTime>
<ordering>В течение недели</ordering>
</orderingTime>
<name>Социальный менеджмент</name>
<publisher>Высшая школа</publisher>
<year>2002</year>
<ISBN>5-06-003776-2,5-06-004362-2</ISBN>
<binding>60x88/16</binding>
</offer>
<offer id="87066" type="book" available="true">
<price>36</price>
<currencyId>RUR</currencyId>
<categoryId>12328</categoryId>
<categoryId>1075045</categoryId>
<delivery>true</delivery>
<orderingTime>
<ordering>На складе</ordering>
</orderingTime>
<author>Сьюзан Бикслер, Лиза Шеррер</author>
<name>Начните действовать!</name>
<publisher>Попурри</publisher>
<year>1998</year>
<ISBN>985-438-154-4</ISBN>
<binding>84x104/32</binding>
<page_extent>368</page_extent>
</offer>
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038391
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал 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.
<root>
	<categories>
		<category id="12293">Английский</category>
		<category id="1074793" parentId="12293">Фринцузкий</category>
		<category id="1075045" parentId="12293">Китайский</category>
	</categories>
	<offers>
		<offer id="83912" type="book" available="false">
			<price> 78 </price>
			<currencyId>RUR</currencyId>
			<categoryId> 12328 </categoryId>
			<delivery>true</delivery>
			<orderingTime>
				<ordering>В течение недели</ordering>
			</orderingTime>
			<name>Социальный менеджмент</name>
			<publisher>Высшая школа</publisher>
			<year> 2002 </year>
			<ISBN> 5 - 06 - 003776 - 2 , 5 - 06 - 004362 - 2 </ISBN>
			<binding>60x88/ 16 </binding>
		</offer>
		<offer id="87066" type="book" available="true">
			<price> 36 </price>
			<currencyId>RUR</currencyId>
			<categoryId> 12328 </categoryId>
			<categoryId> 1075045 </categoryId>
			<delivery>true</delivery>
			<orderingTime>
				<ordering>На складе</ordering>
			</orderingTime>
			<author>Сьюзан Бикслер, Лиза Шеррер</author>
			<name>Начните действовать!</name>
			<publisher>Попурри</publisher>
			<year> 1998 </year>
			<ISBN> 985 - 438 - 154 - 4 </ISBN>
			<binding>84x104/ 32 </binding>
			<page_extent> 368 </page_extent>
		</offer>
	</offers>
</root>
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038410
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще кинь XSL.

И объясни, "12328" надо поменять на "12293" ? Чтобы можно было проверить...
"12328" соответствует атрибуту id или parentId ?
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038419
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, совершенно верно.
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038434
99cents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давайте на почту кину весь XML.

Что в подписи или дайте другой на почту kpv dot com at gmail dot com
...
Рейтинг: 0 / 0
Как зменить id его значением?
    #37038440
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
99cents,

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


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