Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XSLT: как правильно преобразовать XML-документ? 
:(
    Опции темы
cforest
Дата 4.2.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 7.11.2009

Репутация: нет
Всего: нет



Привет. Я новичок в XSLT & XPath. Добросовестно прочитал XSLT and XPATH: A Guide to XML Transformations, но практические аспекты как-то слабо отложились. Есть у меня такой XML-файл:


<?xml version="1.0"?>
Код

    <Configuration serviceName="Just Service" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
      <Page name="Books">
        <Instances count="5" />
        <ConfigurationSettings>
          <Setting name="index" value="true" />
          <Setting name="number" value="value1" />
          <Setting name="bookstorage" value="value2"/>
        </ConfigurationSettings>
      </Page>
      <Page name="Magazines">
        <Instances count="7" />
        <ConfigurationSettings>
          <Setting name="index" value="false" />
          <Setting name="number" value="value1" />
          <Setting name="magazinestorage" value="value3"/>
        </ConfigurationSettings>
      </Page>
    </Configuration>


Что хочу сделать:

1. заменить значения:

value1 - для тега number (в двух местах); 
value2 - для тега bookstorage
value3 - для тега magazinestorage;

2. весь остальное содержимое оставить без изменений. То есть, новый документ должен быть такой же как и старый за исключением описанных выше value1, value2, value3.

Для этого хочу воспользоваться тулой msxsl.exe от Microsoft:
 MSXSL source stylesheet [options] [param=value...] [xmlns:prefix=uri...]

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


PM MAIL   Вверх
diadiavova
Дата 4.2.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                                xmlns:r="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="r:Setting[@name = 'number']/@value ">
        <xsl:attribute name="value">NewValue1</xsl:attribute>
    </xsl:template>
    <xsl:template match="r:Setting[@name = 'bookstorage']/@value ">
        <xsl:attribute name="value">NewValue2</xsl:attribute>
    </xsl:template>
    <xsl:template match="r:Setting[@name = 'magazinestorage']/@value ">
        <xsl:attribute name="value">NewValue3</xsl:attribute>
    </xsl:template>
</xsl:stylesheet>




--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
cforest
Дата 5.2.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 7.11.2009

Репутация: нет
Всего: нет




Дядя Вова, спасибо!


Это сообщение отредактировал(а) cforest - 5.2.2010, 13:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

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

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.