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

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

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

естественно по всей базе, база на 20000 записей, в ручную менять муторошно, а категорий штук 500.
...
Рейтинг: 0 / 0
03.12.2010, 17:53
    #36994283
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как зменить id его значением?
Код: 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
03.12.2010, 18:54
    #36994417
99cents
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как зменить id его значением?
refreg,

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

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

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

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

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


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

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

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

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

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

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

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

<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
28.12.2010, 10:20
    #37038391
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как зменить id его значением?
Сделал 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
28.12.2010, 10:25
    #37038410
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как зменить id его значением?
Еще кинь XSL.

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

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

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


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