Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подскажите с xsl схемой / 4 сообщений из 4, страница 1 из 1
03.09.2012, 12:23
    #37941066
Андрей7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с xsl схемой
Подскажите пожалуйста новичку, как правильно написать xsl-схему, чтобы на выходе получить данные в таком виде:

Иванов Виктор Семенович
Петров Александр Романович
Сидоров Николай Григорьевич

Исходный xml-документ:

<?xml version="1.0" encoding="windows-1251"?>
<ROOT>
<FAM NUM="1">Иванов</FAM>
<FAM NUM="2">Петров</FAM>
<FAM NUM="3">Сидоров</FAM>
<NAME NUM="1">Виктор</NAME>
<NAME NUM="2">Александр</NAME>
<NAME NUM="3">Николай</NAME>
<OTCH NUM="1">Семенович</OTCH>
<OTCH NUM="2">Романович</OTCH>
<OTCH NUM="3">Григорьевич</OTCH>
</ROOT>
...
Рейтинг: 0 / 0
03.09.2012, 15:06
    #37941421
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с xsl схемой
Код: 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.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="text"/>

	<xsl:template match="/ROOT">
		<xsl:apply-templates select="*" mode="NUM">
			<xsl:sort select="@NUM" data-type="number" order="ascending" />
			<xsl:sort select="name()" data-type="text" order="ascending"/>
		</xsl:apply-templates>
        </xsl:template>
	
	<xsl:template match="*" mode="NUM">
		<xsl:value-of select="text()"/>
		<xsl:choose>
			<xsl:when test="name()='OTCH'">
				<!-- перенос-->
				<xsl:text>
</xsl:text>
			</xsl:when>
			<xsl:otherwise>
				<!-- пробел-->
				<xsl:text> </xsl:text>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
03.09.2012, 15:07
    #37941423
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с xsl схемой
Код: xml
1.
2.
3.
4.
5.
<xsl:template match="FAM">
  <xsl:value-of select="."/>
  <xsl:value-of select="../NAME[@NUM = current()/@NUM]"/>
  <xsl:value-of select="../OTCH[@NUM = current()/@NUM]"/>
</xsl:template>
...
Рейтинг: 0 / 0
03.09.2012, 15:48
    #37941514
Андрей7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите с xsl схемой
Спасибо огромное за помощь, все работает.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подскажите с xsl схемой / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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