![]() |
|
Модераторы: diadiavova |
![]()
|
|
| PovAnd |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 20.8.2007 Репутация: нет Всего: нет |
Дан XML файл, в котором необходимо убрать все теги <img>, <a> , а также leaf элементы содержащие символ 'I'. Как это сделать при помощи XSLT?
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
Эта XSLT удалит все <a> и <href>.
Что вы имеете ввиду под leaf - элементами ? что значит содержат ? <leaf>I</leaf> - так ? <leaf><bu>I</bu></leaf> - так ? |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
прошу прощения что занимаюсь археологией но это лучше чем создать новую тему.
так вот: есть xml файл и xsl файл. в xml файле много (очень много) HTML тэгов. xsl файл преодбразует xml в чистый текст. проблема с тегами форматирования: как завставить Xsl при виде например тэга <br> перевести текст на новую строку? тоже самое с таблицами.... благодарю. с Уважением |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
никак. XSLT движок не занимается отображением текста.
Если вы выводите просто текст - то вы и получаете просто текст. Логично ? =) Если хотите получить на выходе html - укажите outputMethod="html" |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
а xsl никак не может сделать чтобы просто вместо тэга новой строки он просто переводил текст на новую строку? мне это очень важно
потому что на выходе получается сплошной текст а хотелось бы чтобы например между
в готовом преобразовании был пробел в одну строчку или переход на следующую. без использования html upd и если можно просто пример стирания тэгов или определённых сочетаний знаков upd: отбой. я придумал как использовать эти теги. теперь тот же вопрос но про <a href= тэги. как посредством xsl выдрать сссылку а сам технический текст(тот что нужен только броузеру) был удалён? и про остальные тэги тот же вопрос. Это сообщение отредактировал(а) ZeitGeist7 - 2.3.2009, 17:51 |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
например так
а вообще прочитайте про XPath. всем ссылкам соответвует xpath: //a/@href |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
ссылку можно?
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
||||
|
||||
| ZeitGeist7 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
и всё таки малость не вкуриваю...
можешь мне показать как соединить чистку тэгов и вот это:
мне так думается что будет выглядеть примерно так:
есть ещё такая проблема: внутри тэга "description" могут содержатся тэги <br /> и ему подобные без пробела между предыдущим и следующим словами. есть возможность этот тэг заменить на другой? и, просто, как добится чтобы фильтровались ВСЕ теги? благодарю. Это сообщение отредактировал(а) ZeitGeist7 - 7.3.2009, 03:23 |
||||
|
|||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
Хм.. вообще в XSLT - есть два стиля =) - "убрать лишнее" и "брать только то что нужно"
вы используете value-of - т.е. выбираете только нужное. Тогда проблемы чистки тегов нет. по поводу замены одного тега на другой я уже писал
выражайте свои вопросы яснее - что есть, и что нужно получить. |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
есть RSS лента второй версии. типа http://news.google.ru/news?pz=1&ned=ru...&output=rss
тэгов там - мама не горюй |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
ниченго подобного - если посмотрите внимательнее - тегов - там только RSS.
Все остальное (содержимое новостей наприрмер) с точки зрения XML - чистый текст. Заметьте - там, хотя содержимое и представляет собой HTML, все HTML тэги - записаны текстом, наприрмер <br> А значит с помощью шаблонов вы это не извлечете. Удобнее всего - сначала извлечь новость, а потом сделать замену регулярным выражением - заменить s/<\w+>//g Если вам нужно именно XSLT - сочуствую - регулярок в XSLT 1 нет. Хотя если очень постараться - можно прикрутить свою функцию к XSLT или написать шаблон для такой замены Это сообщение отредактировал(а) sir_nuf_nuf - 8.3.2009, 17:17 |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
то есть просто взять и застрелится всё это динамическое ковырять
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 5 Всего: 31 |
ну почему.. можно просто выбрать другой инструмент.
Почему вы решили использовать именно XSLT и ничего кроме этого ? где все это работает ? на клиенте ? на сервере ? |
|||
|
||||
| ZeitGeist7 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.3.2009 Репутация: нет Всего: нет |
у меня всё работает на проге котороя работает с rss файлами. с различными файлами. она циклом скачивает файлы и циклом же применяет к ним правила xsl и сохраняет результат в текстовый файл. я бы использовал что нибудь другое но пока обхожусь этим.
просто то что я качаю различно например http://rp5.ru/xml.php?id=5087 и http://joomlaforum.ru/index.php?type=rss;action=.xml и там вы увидите что они абсолютно разные. вручную копать около 300 лент каждые два часа - мазохизм. |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |