XSLT. Преобразование атрибутов в элементы

Статус
Закрыто для дальнейших ответов.

Jackson

Новичок
Регистрация
03.12.2012
Сообщения
2
Добрый день.

Возникла необходимость преобразовать один XML в другой, а точнее все атрибуты элементов первого xml сделать элементами в новом xml и дать им новые имена.
Пример моего первоначального xml:

Код:
<?xml version='1.0' encoding='utf-8'?>
<document>
<item name='F'>
<textlist>
<text>Иванов</text>
</textlist>
</item>
<item name='I'>
<textlist>
<text>Семен</text>
</textlist>
</item>
</document>
Что должно получиться в итоге:

Код:
<?xml version="1.0" encoding="utf-8"?>
<ApplicationFile xmlns:xsi="http://www.w3.org/20...chema-instance" xsi:noNamespaceSchemaLocation="Front_Request.xsd">
<ApplicationsList>
<lastname>Иванов</lastname>
<firstname>Семен</firstname>
</ApplicationsList>
</ApplicationFile>
На просторах инета нашел пример такого преобразования, только не могу понять что есть что:

Код:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/19...XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@*">
<xsl:element name="{local-name(.)}" namespace="{namespace-uri(..)}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
В общем вопросы:
1 <xsl:template match="@*"> - эта конструкция выбирает атрибуты на любой "глубине" вложенности?
2 что подставить вместо {local-name(.)}?
3 какое пространство имен указать вместо {namespace-uri(..)}? Обычное xmlns:xsl="http://www.w3.org/19...XSL/Transform"?

PS: Знаком с XML и XSLT весьма поверхностно. Прошу помощи, а не ссылок.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
http://raleigh.ru/XML/XSLTutorial/
 

Jackson

Новичок
Регистрация
03.12.2012
Сообщения
2
Просил же не кидать ссылок. Я этих примеров пересмотрел/перечитал фигову тучу. Я задал конкретные вопросы. Подскажите пожалуйста.
 

Dmitriy Voronyuk

Новичок
Регистрация
25.12.2012
Сообщения
3
на любой глубине вложенности выбирает //@*
 
Статус
Закрыто для дальнейших ответов.
Верх Низ