Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Изменить исходный xml-файл / 25 сообщений из 30, страница 1 из 2
21.08.2012, 14:20
    #37924563
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
Привет.
У меня есть 2 xml-файла:
1. основной
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version='1.0' standalone='yes'?>
<opt>
  <map>
    <room>
      <rnumber>17</rnumber>
      <title>Аптека 36.6</title>
    </room>
    <room>
      <rnumber>18</rnumber>
      <title>Оптик-Экспресс</title>
    </room>
    <room>
      <rnumber>19</rnumber>
      <title>Л'Этуаль</title>
    </room>
    ...
</opt>



и дополнительный
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="number1">
	<polygon fill="#F4D192" points="736.064,11.333 736.064,11.5 736.064,71.402 775,71.402 775,71.5 775,284.766 761,284.766 
		761,304.766 719.596,304.766 719.596,310.5 684.5,310.5 684.5,409.4 684.5,409.434 775.102,409.434 868.333,409.434 
		868.333,312.766 880.233,312.766 880.233,11.5 880.233,11.333 	"/>
	<text transform="matrix(1 0 0 1 749.5 366.5)" fill="#231F20" font-family="'PTSans-Caption'" font-size="18">МВидео</text>
</g>
<g id="number2">
	<polygon fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" points="592.5,305.047 592.5,409.404 329.333,409.404 
		329.333,305 	"/>
	<text transform="matrix(1 0 0 1 394.1333 366.5)" font-family="'PTSans-Caption'" font-size="18">Старик Хоттабыч</text>
</g>
...
</svg>



Задача: нужно из основного xml-файла взять названия из room/title и вставить в дополнительный xml-файл в g/text, т. е. на выходе должны быть узлы дополнительного файла, но в узле <text> названия брались из основного, из room/title.

Я понимаю, что нужно решать задачу с помощью идентичного преобразования, но продвинуться дальше
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" ?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
>

<xsl:output method="html" indent="yes" />
<xsl:variable name="i" select="opt/map/room/title" />
<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="opt">
	<xsl:copy>
		<xsl:apply-templates select="document('map.svg')"/>
	</xsl:copy>
</xsl:template>

не получается.

Помогите пожалуйста.
...
Рейтинг: 0 / 0
21.08.2012, 14:48
    #37924651
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekт. е. на выходе должны быть узлы дополнительного файла, но в узле <text> названия брались из основного, из room/titleПо каком принципу? Совпадение позиций?
...
Рейтинг: 0 / 0
21.08.2012, 15:01
    #37924688
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_,

Cравниваться должны значения в узлах <rnumber>17</rnumber> и <g id="number17">.
...
Рейтинг: 0 / 0
21.08.2012, 16:08
    #37924912
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
Тогда так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0" ?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
>

  <xsl:output method="html" indent="yes" />

  <xsl:variable name="map" select="document('main.xml')" />

  <xsl:template match="text">
    <xsl:apply-templates select="@*"/>
    <xsl:value-of select="$main/opt/map/room[rnumber = current()/../g/@id]/title"/>
  </xsl:template>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:template>

[/quote]
...
Рейтинг: 0 / 0
23.08.2012, 08:39
    #37927371
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_, спасибо.

У вас сработало? У меня почему-то нет.
...
Рейтинг: 0 / 0
23.08.2012, 11:30
    #37927661
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekУ меня почему-то нет.И, что работает не так?

Вы к какому файлу его применяете
...
Рейтинг: 0 / 0
23.08.2012, 12:42
    #37927815
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_Вы к какому файлу его применяете
Чуть поправил ваш шаблон
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html" indent="yes" />
<xsl:variable name="main" select="document('map.xml')" />

<xsl:template match="text">
	<xsl:apply-templates select="@*"/>
	<xsl:value-of select="$main/opt/map/room[rnumber = current()/../g/substring(@id, 7, 2)]/title" />
</xsl:template>

<xsl:template match="@* | node()">
	<xsl:copy>
		<xsl:apply-templates select="@* | node()"/>
	</xsl:copy>
</xsl:template>
</xsl:stylesheet>



Применяю к основному шаблону.
...
Рейтинг: 0 / 0
23.08.2012, 13:37
    #37927916
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekЧуть поправил ваш шаблонСразу не заметил, что там не число.

Рекомендую писать так
Код: xml
1.
substring(@id, 7)
...
Рейтинг: 0 / 0
23.08.2012, 13:39
    #37927918
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekПрименяю к основному шаблону.А нужно к дополнительному
...
Рейтинг: 0 / 0
23.08.2012, 14:39
    #37928041
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_А нужно к дополнительномуА так можно?
У меня ситуация такая: основной xml формируется динамически, дополнительный формируется в ручную. Сделать наоборот я не могу.
...
Рейтинг: 0 / 0
23.08.2012, 14:40
    #37928043
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_
Рекомендую писать так
Код: xml
1.
substring(@id, 7)

Спасибо, не знал, что так можно.
...
Рейтинг: 0 / 0
23.08.2012, 17:09
    #37928388
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekА так можно?А какая разница к чему применять трансформацию?
artwalekУ меня ситуация такая: основной xml формируется динамически, дополнительный формируется в ручнуюИ, что? Это накладывает какие-то ограничения на XSLT процессор?
...
Рейтинг: 0 / 0
24.08.2012, 08:35
    #37928890
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_artwalekА так можно?А какая разница к чему применять трансформацию?
artwalekУ меня ситуация такая: основной xml формируется динамически, дополнительный формируется в ручнуюИ, что? Это накладывает какие-то ограничения на XSLT процессор?Разницы конечно нет, я имел в виду, что к основному xml жёстко прописывается шаблон. И как я понимаю в этом случае нельзя применить ваш шаблон к дополнительному. Или я ошибаюсь?

Но на локале попробовал применить к дополнительному, но трансформация всё равно не сработала. Шаблон вроде корректный, xml тоже, не могу понять почему не работает.
...
Рейтинг: 0 / 0
24.08.2012, 17:42
    #37929739
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalek,

для начала проверьте, есть ли что-то в переменной main, скорее всего проблема там.
если файл подтянется, то добавляете такой темплейт:
Код: xml
1.
2.
3.
<xsl:template match="/">
   <xsl:apply-templates select="$main/*" />
</xsl:template>
...
Рейтинг: 0 / 0
24.08.2012, 17:44
    #37929747
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
ну и
Код: xml
1.
<xsl:value-of select="$main/opt/map/room[rnumber = current()/../g/substring(@id, 7, 2)]/title" />

заменяете на
Код: xml
1.
<xsl:value-of select="/opt/map/room[rnumber = current()/../g/substring(@id, 7, 2)]/title" />
...
Рейтинг: 0 / 0
27.08.2012, 10:02
    #37931251
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
mage.lan,

Спасибо.
Данные в переменную main заходят.
Думаю проблема в этой конструкции current()/../g/substring(@id, 7, 2)

Потому что если тупо написать:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html" indent="yes" />
<xsl:variable name="main" select="document('test.xml')" />

<xsl:template match="text">
	<xsl:value-of select="../g/@id" />
	<xsl:copy>
		<xsl:apply-templates select="@*" />
		<xsl:value-of select="$main/opt/map/room[rnumber=5]/title" />
	</xsl:copy>
</xsl:template>

<xsl:template match="@* | node()">
	<xsl:copy>
		<xsl:apply-templates select="@* | node()"/>
	</xsl:copy>
</xsl:template>
</xsl:stylesheet>



то работает, но конечно не так как нужно.
...
Рейтинг: 0 / 0
27.08.2012, 12:14
    #37931505
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekДумаю проблема в этой конструкции current()/../g/substring(@id, 7, 2)Конечно же
Код: xml
1.
<xsl:value-of select="$main/opt/map/room[rnumber = substring(current()/../g/@id, 7)]/title" />


Но вот так
Код: xml
1.
<xsl:value-of select="$main/opt/map/room[concat('number', rnumber) = current()/../g/@id]/title" />

должно быть пошустрее
...
Рейтинг: 0 / 0
27.08.2012, 12:33
    #37931556
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Но вот так
Код: xml
1.
<xsl:value-of select="$main/opt/map/room[concat('number', rnumber) = current()/../g/@id]/title" />

должно быть пошустрее
_Vasilisk
Я вас наверное замучал, но не работает :-((
...
Рейтинг: 0 / 0
27.08.2012, 13:32
    #37931684
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
Пространства имен нужно указывать
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" ?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
  xmlns:svg="http://www.w3.org/2000/svg"
>

  <xsl:output method="html" indent="yes" />

  <xsl:variable name="map" select="document('main.xml')" />

  <xsl:template match="svg:text">
    <xsl:apply-templates select="@*"/>
    <xsl:value-of select="$main/opt/map/room[concat('number', rnumber) = current()/../svg:g/@id]/title" />
  </xsl:template>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:template>
...
Рейтинг: 0 / 0
27.08.2012, 13:33
    #37931688
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
И конечно же
Код: xml
1.
 <xsl:output method="xml" indent="yes" />


какой еще html?
...
Рейтинг: 0 / 0
27.08.2012, 13:56
    #37931753
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_,

Вы меня растерзаете, но не работает :-/
...
Рейтинг: 0 / 0
27.08.2012, 14:02
    #37931771
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
На всякий случай выложу полные файлы.
Основной:
Код: xml
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.
<?xml version='1.0' standalone='yes'?>
<opt>
  <floor>
    <id>3</id>
    <number>0</number>
  </floor>
  <map>
    <room>
      <rnumber>1</rnumber>
      <title>36.6</title>
    </room>
    <room>
      <rnumber>2</rnumber>
      <title>Optik</title>
    </room>
    <room>
      <rnumber>3</rnumber>
      <title>Letual</title>
    </room>
    <room>
      <rnumber>4</rnumber>
      <title>Megafon</title>
    </room>
    <room>
      <rnumber>5</rnumber>
      <title>SonyCentre</title>
    </room>
    <room>
      <rnumber>6</rnumber>
      <title>re:Store</title>
    </room>
    <room>
      <rnumber>7</rnumber>
      <title>Pyshka</title>
    </room>
    <room>
      <rnumber>8</rnumber>
      <title>UfaNet</title>
    </room>
    <room>
      <rnumber>9</rnumber>
      <title>Sportmaster</title>
    </room>
    <room>
      <rnumber>10</rnumber>
      <title>Investbank</title>
    </room>
    <room>
      <rnumber>11</rnumber>
      <title>Nail Bar</title>
    </room>
    <room>
      <rnumber>12</rnumber>
      <title>Dlya tela i dushi</title>
    </room>
    <room>
      <rnumber>13</rnumber>
      <title>Nokia</title>
    </room>
    <room>
      <rnumber>14</rnumber>
      <title>Jelato</title>
    </room>
    <room>
      <rnumber>15</rnumber>
      <title>Shokoladnica</title>
    </room>
    <room>
      <rnumber>16</rnumber>
      <title>Mondial</title>
    </room>
    <room>
      <rnumber>17</rnumber>
      <title>DNS</title>
    </room>
  </map>
  <selected>
    <rnumber>19</rnumber>
    <rnumber>20</rnumber>
  </selected>
</opt>



и дополнительный:
Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="number1">
	<polygon fill="#F4D192" points="736.064,11.333 736.064,11.5 736.064,71.402 775,71.402 775,71.5 775,284.766 761,284.766 
		761,304.766 719.596,304.766 719.596,310.5 684.5,310.5 684.5,409.4 684.5,409.434 775.102,409.434 868.333,409.434 
		868.333,312.766 880.233,312.766 880.233,11.5 880.233,11.333 	"/>
	<text transform="matrix(1 0 0 1 749.5 366.5)" fill="#231F20" font-family="'PTSans-Caption'" font-size="18">МВидео</text>
</g>
<g id="number2">
	<polygon fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" points="592.5,305.047 592.5,409.404 329.333,409.404 
		329.333,305 	"/>
	<text transform="matrix(1 0 0 1 394.1333 366.5)" font-family="'PTSans-Caption'" font-size="18">Старик Хоттабыч</text>
</g>
<g id="number3">
	<rect x="273.333" y="370.667" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="56" height="38.737"/>
	<text transform="matrix(1 0 0 1 273.3335 430)" display="none" font-family="'PTSans-Caption'" font-size="18">Милли</text>
</g>
<g id="number4">
	<rect x="247.369" y="383.667" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="25.965" height="25.737"/>
	<text transform="matrix(1 0 0 1 247.5 415.333)" display="none" font-family="'PTSans-Caption'" font-size="18">Токио</text>
</g>
<g id="number5">
	<polygon fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" points="247.369,393.012 247.369,409.404 222.333,409.404 
		222.333,393 	"/>
	<text transform="matrix(1 0 0 1 221.75 415)" display="none" font-family="'PTSans-Caption'" font-size="18">French Kiss</text>
</g>
<g id="number6">
	<rect x="194" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="28.333" height="40.101"/>
	<text transform="matrix(1 0 0 1 187.125 422.625)" display="none" font-family="'PTSans-Caption'" font-size="18">Экспедиция</text>
</g>
<g id="number7">
	<rect x="162.833" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="31.167" height="40.101"/>
	<text transform="matrix(1 0 0 1 160.125 427.25)" display="none" font-family="'PTSans-Caption'" font-size="18">МТС</text>
</g>
<g id="number8">
	<rect x="137.583" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="25.25" height="40.101"/>
	<text transform="matrix(1 0 0 1 114 437)" font-family="'PTSans-Caption'" font-size="18">Малышок</text>
</g>
<g id="number9">
	<rect x="114.625" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="22.958" height="40.101"/>
	<text transform="matrix(1 0 0 1 115.25 417.125)" display="none" font-family="'PTSans-Caption'" font-size="18">EYEKRAFT</text>
</g>
<g id="number10">
	<rect x="87.875" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="26.75" height="40.101"/>
	<text transform="matrix(1 0 0 1 80 426)" display="none" font-family="'PTSans-Caption'" font-size="18">Bibelots</text>
</g>
<g id="number11">
	<rect x="30.333" y="369.333" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="57.542" height="40.101"/>
	<text transform="matrix(1 0 0 1 24.625 426.75)" display="none" font-family="'PTSans-Caption'" font-size="18">Империя сумок</text>
</g>
<g id="number12">
	<rect x="30.333" y="315.434" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="28.334" height="53.899"/>
	<text transform="matrix(1 0 0 1 37.75 343.25)" display="none" font-family="'PTSans-Caption'" font-size="18">Евросеть</text>
</g>
<g id="number13">
	<rect x="17" y="287.5" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="41.667" height="27.934"/>
</g>
<g id="number14">
	<polygon fill="#F4D192" points="162.333,11.434 162.333,72.101 121.667,72.101 121.667,280.85 58.667,280.85 58.667,287.5 
		17,287.5 17,11.434 	"/>
	<text transform="matrix(1 0 0 1 26 170)" font-family="'PTSans-Caption'" font-size="18">Матрица</text>
</g>
<g id="number15">
	<rect x="162" y="305.034" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="59" height="37.966"/>
	<text transform="matrix(1 0 0 1 166.25 321.875)" display="none" font-family="'PTSans-Caption'" font-size="18">КредитЕвропаБанк</text>
</g>
<g id="number16">
	<rect x="137.583" y="305.034" fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" width="24.417" height="42.633"/>
	<text transform="matrix(1 0 0 1 141.875 326.75)" display="none" font-family="'PTSans-Caption'" font-size="18">Московское время</text>
</g>
<g id="number17">
	<polygon fill="#F4D192" stroke="#FFFFFF" stroke-miterlimit="10" points="137.583,304.835 137.583,347.667 115.667,347.667 
		115.667,304.865 	"/>
	<text transform="matrix(1 0 0 1 151 288)" font-family="'PTSans-Caption'" font-size="18">Палата 6</text>
</g>
</svg>
...
Рейтинг: 0 / 0
28.08.2012, 00:40
    #37932712
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
artwalekВы меня растерзаете, но не работает :-/Ну промахнулся с путями
Код: xml
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.
<?xml version="1.0" ?>
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:svg="http://www.w3.org/2000/svg"
>

  <xsl:output method="xml" indent="yes" />

  <xsl:variable name="main" select="document('main.xml')" />

  <xsl:template match="svg:text">
    <xsl:copy>
      <xsl:apply-templates select="@*"/>
      <xsl:variable name="id" select="substring(../@id, 7)"/>
      <xsl:value-of select="$main/opt/map/room[rnumber = $id]/title" />
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>


На этот раз даже проверил :)

Можно и без переменной $id, но пусть будет
...
Рейтинг: 0 / 0
28.08.2012, 09:51
    #37932927
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
_Vasilisk_,

Здорово, работает! Спасибо огромное! :-)
...
Рейтинг: 0 / 0
28.08.2012, 14:07
    #37933542
artwalek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменить исходный xml-файл
И ещё вопрос.

Когда нет возможности изменить направление трансформации с основного на дополнительный, как быть?
Проблема в том, что основной xml-файл генерируется движком, а про дополнительный xml движок ничего не знает.

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


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