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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с префиксами, при XSLT-преобразовании 
:(
    Опции темы
[Last]Wizard
Дата 1.2.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

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



Извините конечно за ламерский вопрос, но у меня возникла такая проблема:

У меня есть xml-документ, который сделан по определенной xsd-схеме. Например такой:
Код
<?xml version="1.0" encoding="utf-8" ?>
<root xmlns="http://tempuri.org/XMLSchema.xsd">
   <element1>
   ...
   </element1>
...
</root>

И есть XSLT-преобразование, подключающее многие другие схемы:
Код
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ns1="http://tempuri.org/XMLSchema.xsd">
   <xsl:template match="root/element1">
       ...
   </xsl:template>
</xsl:stylesheet>

Так вот, шаблон match="root/element1" не срабатывает на данном xml-файле вообще.

Хотя, если изменить файл данных следующим образом:
Код
<?xml version="1.0" encoding="utf-8" ?>
<ns1:root xmlns:ns1="http://tempuri.org/XMLSchema.xsd">
   <ns1:element1>
   ...
   </ns1:element1>
...
</ns1:root>

а также во всех шаблонах xslt писать match="ns1:root/ns1:element1" то все прекрасно работает.

Но дело в том, что мне нужно обрабатывать xml-файлы, которые не содержат префиксов.
Подскажите, как быть. smile
Заранее благодарен.
PM ICQ   Вверх
Измайлов Ф.В.
Дата 2.2.2005, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ответ тоже м.б. ламерский, НО... мы такую же проблему решали, трансформация XML-документа для вывода в Excel. У нас все работает, и вот в чем отличия.
1. Мы не используем схему, XML-документ получается из обращения ASP к SQL-серверу
2. В шаблоне используем след. конструкцию:
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">
<xsl:text>progid="Excel.Sheet"</xsl:text>
</xsl:processing-instruction>
<Workbook>
.................
Может стоит откзаться от схем?
Измайлов Ф.В.


PM MAIL   Вверх
[Last]Wizard
Дата 2.2.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

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



Цитата
Может стоит откзаться от схем?

Нет, от схем отказываться нельзя по нескольким причинам.
Во-первых, перед преобразованием, xml с данными проходит валидацию по схеме, там есть тонкости, которые можно проверить только используя схемы (например ключи и связи xs:key и xs:keyref).
Во вторых, в одном документе планируется использоваться несколько схем, и при преобразовании необходимо учитывать какому namespace принадлежит каждый элемент.

Цитата
В шаблоне используем след. конструкцию

Да, я в шаблоне использую такую же конструцию (просто выше не писал):
Код
<xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>


Это сообщение отредактировал(а) [Last]Wizard - 2.2.2005, 13:32
PM ICQ   Вверх
3,14
Дата 2.2.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Уж не знаю почему срабатывает с префиксами но по-моему нужно просто писать match="/element1"


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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