Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2011, 18:27
Аватар для kuzroman
Кандидат Javascript-наук
Отправить личное сообщение для kuzroman Посмотреть профиль Найти все сообщения от kuzroman
 
Регистрация: 26.11.2010
Сообщений: 124

подскажите как отпарсить?
Доброго времни суток, задача такая
есть:

<div class="news" >
	<b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
	<b>Год выхода</b>: 2011<br/>
	<b>Жанр</b>	: драма, биография<br/>
	<b>Режиссер</b>: Петр Буслов<br/>
	<b>В ролях:</b>	Оксана Акиньшина, Сергей Безруков, Андрей Смоляков, Иван Ургант, Максим Леонидов, Андрей Панин, Владимир Ильин, Дмитрий Астрахан, Анна Ардова, Владимир Меньшов<br/>
	<b>Выпущено</b>: Россия, Дирекция Кино<br/>
	<b>Продолжительность</b>: 02:07:51<br/>
	<b>Перевод</b>: Оригинал<br /><br/>
	<b>Качество</b>: TS<br/>
	<b>Размер</b>: 1.37 Gb<br/><br/>
	<b>О фильме</b>: Действие фильма разворачивается в 1979 году, когда на одном из концертов Высоцкому становится плохо с сердцем. Он переживает клиническую смерть.
</div>


мне нужно в разные переменные занести название фильма, Жанр...
кто знает как это реализовать, js/jquery/php неважно
Контент менять нельзя!
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2011, 18:45
Аватар для kuzroman
Кандидат Javascript-наук
Отправить личное сообщение для kuzroman Посмотреть профиль Найти все сообщения от kuzroman
 
Регистрация: 26.11.2010
Сообщений: 124

мне конструкция сего html немного мешает, вот если бы описания были бы тоже в каком теге, то былобы проще, например:
<b>Жанр</b><div>Боевик</div>

в jquery выдернул бы так

$('.news b').each(function(){
	if( $(this).text()=='Фильм' ) alert($(this).next().text())
});


А как сделать без тега, непойму.
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2011, 19:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 12,882

Сообщение от kuzroman
А как сделать без тега, непойму.
Брать весь контент дивов class="news"... Искать нужное начало "<b>начало</b> :"... Затем вырезать нужный текст от начала до <br/>...

Вот такой вот алгоритм.
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2011, 19:30
Аватар для kuzroman
Кандидат Javascript-наук
Отправить личное сообщение для kuzroman Посмотреть профиль Найти все сообщения от kuzroman
 
Регистрация: 26.11.2010
Сообщений: 124

блиииин точно, а я то голову ломаю, причем не первый раз на подобной задаче торможу. Спасибо огроменное.
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2011, 19:39
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

можно пробежаться jquery по всем <b></b>
и брать соседний элемент, если там других тегов нет

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>demo</title>
  <script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
<script>
$(function(){
  var result = {};
  $('.news b').each(function () {
      result[$(this).text()] = $(this.nextSibling).text().replace(/\s*:\s*/, '');
  });
  // проверка
  alert(result['Фильм']);
  alert(result['Год выхода']);
  // ...
});

</script>
</head>
<body>
  <div class="news" >
    <b>Фильм</b> : Высоцкий. Спасибо, что живой<br/>
    <b>Год выхода</b>: 2011<br/>
    <b>Жанр</b> : драма, биография<br/>
    <b>Режиссер</b>: Петр Буслов<br/>
    <b>В ролях:</b> Оксана Акиньшина, Сергей Безруков, Андрей Смоляков, Иван Ургант, Максим Леонидов, Андрей Панин, Владимир Ильин, Дмитрий Астрахан, Анна Ардова, Владимир Меньшов<br/>
    <b>Выпущено</b>: Россия, Дирекция Кино<br/>
    <b>Продолжительность</b>: 02:07:51<br/>
    <b>Перевод</b>: Оригинал<br /><br/>
    <b>Качество</b>: TS<br/>
    <b>Размер</b>: 1.37 Gb<br/><br/>
    <b>О фильме</b>: Действие фильма разворачивается в 1979 году, когда на одном из концертов Высоцкому становится плохо с сердцем. Он переживает клиническую смерть.
</div>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2011, 22:47
Аватар для kuzroman
Кандидат Javascript-наук
Отправить личное сообщение для kuzroman Посмотреть профиль Найти все сообщения от kuzroman
 
Регистрация: 26.11.2010
Сообщений: 124

Да круто и удобно запихнуть все в асоцциативный массив.

не могу только описание nextSibling найти.
догадываюсь конечно что он делает, его то мне и нехватало для полного счастья, но где вы его нашли?
Ответить с цитированием
  #7 (permalink)  
Старый 05.12.2011, 05:37
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от kuzroman
не могу только описание nextSibling найти.
догадываюсь конечно что он делает, его то мне и нехватало для полного счастья, но где вы его нашли?
http://beta.javascript.ru/tutorial/t...B8-nextsibling
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2011, 20:35
Аспирант
Отправить личное сообщение для Pattern Посмотреть профиль Найти все сообщения от Pattern
 
Регистрация: 13.05.2009
Сообщений: 37

Не знаю, кому как, а я бы наверное split-анул бы содержимое <div class="news">...</div> на br-ы, а потом перебирал по элементно созданные индексы. Если последовательность не изменна, значит 0 - название фильма, 1 - год, 2 - жанр и т.д.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как мне вставить таблицу на сайт Sohne Серверные языки и технологии 5 06.10.2011 18:12
Подскажите как сделать автозапрос к БД MasterYoda AJAX и COMET 4 18.04.2011 15:26
Подскажите как правильно записать header ("Location: FOOD.html"); Arfey Серверные языки и технологии 2 03.06.2010 11:15
Подскажите как это сделано Петр Общие вопросы Javascript 14 02.10.2009 12:41
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 06:55