1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Вопросы По Xslt

Тема в разделе "Web - программирование", создана пользователем Eugen, 29 ноя 2012.

  1. Eugen

    Eugen Well-Known Member

    Репутация:
    0
    Регистрация:
    22 мар 2012
    Сообщения:
    177
    Симпатии:
    0
    Добрый день.

    Возникла необходимость преобразовать один 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/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Front_Request.xsd">
    <ApplicationsList>
    <lastname>Иванов</lastname>
    <firstname>Семен</firstname>
    </ApplicationsList>
    </ApplicationFile>

    На просторах инета нашел пример такого преобразования, только не могу понять что есть что:

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/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/1999/XSL/Transform"?

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

Поделиться этой страницей