парсинг html-строки? Рег выражения?
Здравствуйте, мне нужно парсить вот такую строку,
<map id="test" name="test"> <area shape="poly" coords="1583,172,1589,172,1589,178,1583,178,1583,172,1583,172" title="Line1: (29.04.01 06:00, 18,738)" alt="" nohref="nohref"/> <area shape="poly" coords="1330,152,1336,152,1336,158,1330,158,1330,152,1330,152" title="Line1: (29.04.01 05:00, 20,279)" alt="" nohref="nohref"/> <area shape="poly" coords="1077,133,1083,133,1083,139,1077,139,1077,133,1077,133" title="Line1: (29.04.01 04:00, 21,814)" alt="" nohref="nohref"/> <area shape="poly" coords="824,114,830,114,830,120,824,120,824,114,824,114" title="Line1: (29.04.01 03:00, 23,345)" alt="" nohref="nohref"/> </map> <map id="test" name="test"> <area shape="poly" coords="571,94,577,94,577,100,571,100,571,94,571,94" title="Line1: (29.04.01 02:00, 24,869)" alt="" nohref="nohref"/> <area shape="poly" coords="318,75,324,75,324,81,318,81,318,75,318,75" title="Line1: (29.04.01 01:00, 26,387)" alt="" nohref="nohref"/> <area shape="poly" coords="66,56,72,56,72,62,66,62,66,56,66,56" title="Line1: (29.04.01 00:00, 27,899)" alt="" nohref="nohref"/> </map> отсюда мне нужно получить например массив или строку, которая содержыт только элементы <area shape="poly" coords="824,114,830,114,830,120,824,120,824,114,824,114" title="Line1: (29.04.01 03:00, 23,345)" alt="" nohref="nohref"/> почитал про "рег выражения" - кажется самый хороший вариант. но что-то пока не приходят мысли как это сделать. Может кто подскажет? Спасибо. |
var str = '<map id="test" name="test">\ <area shape="poly" coords="1583,172,1589,172,1589,178,1583,178,1583,172,1583,172" title="Line1: (29.04.01 06:00, 18,738)" alt="" nohref="nohref"/>\ <area shape="poly" coords="1330,152,1336,152,1336,158,1330,158,1330,152,1330,152" title="Line1: (29.04.01 05:00, 20,279)" alt="" nohref="nohref"/>\ <area shape="poly" coords="1077,133,1083,133,1083,139,1077,139,1077,133,1077,133" title="Line1: (29.04.01 04:00, 21,814)" alt="" nohref="nohref"/>\ <area shape="poly" coords="824,114,830,114,830,120,824,120,824,114,824,114" title="Line1: (29.04.01 03:00, 23,345)" alt="" nohref="nohref"/>\ </map>\ <map id="test" name="test">\ <area shape="poly" coords="571,94,577,94,577,100,571,100,571,94,571,94" title="Line1: (29.04.01 02:00, 24,869)" alt="" nohref="nohref"/>\ <area shape="poly" coords="318,75,324,75,324,81,318,81,318,75,318,75" title="Line1: (29.04.01 01:00, 26,387)" alt="" nohref="nohref"/>\ <area shape="poly" coords="66,56,72,56,72,62,66,62,66,56,66,56" title="Line1: (29.04.01 00:00, 27,899)" alt="" nohref="nohref"/>\ </map>'; var res = str.match( /(<area(?:[^>]*)>)/ig ); alert( res.join( "\n\n" )); |
да ну ладно вам, это же классика. нельзя использовать регулярки для парсинга хтмл!
var map = document.getElementsById('test'); var areas = map.getElementsByTagName('area'); |
devote - пасиб, работает
Цитата:
|
Цитата:
UPD. ну а если совсем не нравится, то можно вот так: http://www.w3schools.com/xml/xml_parser.asp только не регулярками))) |
Цитата:
бррррр и откуда у меня xml? Я видимо не понимаю на какую мысль вы меня хотите навести. :) |
Цитата:
или добавить данный фрагмент при получении в какой-нибудь невидимый div на странице и работать как с частью DOM... |
tadjik1,
да какая тебе разница как человек обрабатывает строку.. Человек попросил решения, ему его дали. Попросил бы решения распарсить XML получил бы решения того как это делается.. |
devote - пасиб за понимание. :):victory:
|
lord2kim - пасиб за объяснение.
|
Часовой пояс GMT +3, время: 18:18. |