![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
hug |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
есть xml:
Пишу xslt:
namespace различные и xslt transform не идет Если из исхондого xml убираю xmlns="http://tourml.ru/products/2004-04-19" все идет нормально, но удалять ns неправильно. Подскажите пожалуйста как разрулить? |
||||
|
|||||
Muran |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
еднственное, что мне удалось сделать -
это в xsl обявить такой же namespace в определении стайлщита xmlns:ns="http://www.opengis.net/wms" затем во всех match дописываю ns типа
Это сообщение отредактировал(а) Muran - 16.5.2008, 11:05 |
|||
|
||||
JVM |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: 4 Всего: 5 |
![]() дело в том, что после того как ты ПЕРЕопределяешь в исходном xml префикс по умолчанию (xmlns="http://tourml.ru/products/2004-04-19") - задаешь новое пространство имен(http://tourml.ru/products/2004-04-19), ты должен использовать это же пространство имен и в xsl. В xsl уже в принципе не важно какой ты установишь префикс для пространства имен, т.к. имеет смысл не сам префикс, а его значение. Это сообщение отредактировал(а) JVM - 16.5.2008, 11:17 |
|||
|
||||
hug |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Спасибо большое за ответ
но странно сделал как вы сказали но трансформ не идет
Output:
Опять же удаляю неймспейс, все ок |
||||
|
|||||
Muran |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
попробуй так...
|
|||
|
||||
hug |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
так получилось:
Но ns неохота писать:( |
|||
|
||||
Muran |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 15.5.2008 Репутация: нет Всего: нет |
можно попробовать переименовать нэймспэйс.. задать что ns=#default
я так написал, у меня с ходу не получилось... пока отложил.. попробуй, потом расскажешь результат ![]() |
|||
|
||||
JVM |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: 4 Всего: 5 |
xsl:namespace-alias используется для отображения пространства имен, использующиеся в таблице стилей, в другое пространство имен, используемое в выводе и по этому не решит данной проблемы.
Надо признать, что я тоже был не прав и у этой проблемы(насколько я теперь понимаю) нет решения без использования префиксов. Дело в том, что в ражениях XPath игнорируются пространства имен по умолчанию. Т.е. если объявлено пространство имен по умолчанию(xmlns="http://tourml.ru/products/2004-04-19") в XSLT, то это не позволит обратиться к элементам <element> используя выражение XPath //element. В общем надо объявлять префикс (xmlns:pref="http://tourml.ru/products/2004-04-19") и обращаться к <element> используя //pref:element. |
|||
|
||||
DarkLordis |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.9.2010 Репутация: нет Всего: нет |
в общем решается эта проблема вроде (у меня решилась) крайне просто... (целый день думал что за фигня)
а все потому что root-элемент не такой как все ![]() Это сообщение отредактировал(а) DarkLordis - 7.9.2010, 01:46 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |