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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблон из opendocument 
:(
    Опции темы
morridzh
Дата 9.11.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть простая казалось бы задача: формировать OpenDocument файл с заполненными в нужных местах полями. Например, грубо говоря, пользователь дает мне бланк в форме odt.
Здравствуйте, Вася Пупкин. У вас на счету 0 рублей.
Я делаю из него что-то вроде
Здравствуйте, name. У вас на счету balance рублей.

И затем в программно заменяю name и balance.

Я вижу 2 варианта:

1) я изначально конвертирую odt в xslt (вернее не весь odt, а его content.xml). Затем, из исходных данных строю в run-time xml вида
Код

<info>
  <name>Вася</name>
  <balance>0</balance>
</info>

И, применяя к нему подготовленный xslt, получаю content.xml, потом добавляю к нему остальное из odt и отправляю юзеру.

2) я строю в ран-тайме уже сам xslt, который грубо говоря заменяет все name и balance на некие значения. Ну что-то вроде
Код

<xsl:template match="text()">
  <xsl:choose>
    <xsl:when test="contains(.,'name')">
      <xsl:value-of select="substring-before(.,'name')"/>
      Вася
      <xsl:value-of select="substring-after(.,'name')"/>
      ...
   </xsl:choose>
</xsl:template>


Ну где-то так, мысль думаю понятна.

Вариант 1 мне не нравится тем, что необходимо изначально адаптировать бланк, преобразовывать его в формат xslt руками (ну или скриптом неким, но все равно). Если его нужно менять, то это уже проблема.

Вариант 2 не нравится тем, что если нужно будет добавить скажем таблицу, то придется менять сам код, который создает этот xslt... Тогда как исходные данные (то что в первом варианте в виде xml) не изменяются...

Как сделать правильнее? Может есть какие-то вообще специальные средства для создания шаблонов, которые потом конвертируются в odt/rtf и прочее?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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