2015-01-07 2 views
0

Мой проект по-прежнему кодируется. Но, к сожалению, я столкнулся с другой проблемой.Erlang: получить информацию из разобранного html

Недавно мне удалось получить html-код с сайта с erlang, и я разбираю эту информацию в плагине mochiweb. Вот то, что получили в настоящее время:

{<<"html">>,[], 
[{<<"head">>,[],[]}, 
    {<<"body">>,[], 
    [{<<"table">>,[], 
    [{<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Poniedzialek ">>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -5 ">>]}, 
     {<<"td">>,[{<<"id">>,<<"wiatr">>}],[<<"13 km/h">>]}]}, 
     {<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Wtorek ">>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -15 ">>]}, 
     {<<"td">>,[{<<"id">>,<<"wiatr">>}],[<<"13 km/h">>]}]}, 
     {<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Sroda ">>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 10 ">>]}, 
     {<<"td">>,[{<<"id">>,<<"wiatr">>}],[<<"13 km/h">>]}]}, 
     {<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Czwartek ">>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 12 ">>]}, 
     {<<"td">>,[{<<"id">>,<<"wiatr">>}],[<<"13 km/h">>]}]}, 
     {<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Piatek ">>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 20 ">>]}, 
     {<<"td">>,[{<<"id">>,<<"wiat"...>>}],[<<"13 km/h">>]}]}, 
     {<<"tr">>,[], 
     [{<<"td">>,[{<<"id">>,<<"day">>}],[<<"Poniedzialek"...>>]}, 
     {<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -5 ">>]}, 
     {<<"td">>,[{<<"id">>,<<...>>}],[<<"13 k"...>>]}]}]}]}]} 

А теперь я хотел бы получить информацию о температуре, ветер. Как сделать функцию в erlang, чтобы получить точно температуру в возможно списке или добавить в json-файл, без лишних вещей.

+0

Возможный дубликат [Разбор результатов, полученных из mochiweb \ _html] (http://stackoverflow.com/questions/16148202/parsing-the-result-obtained-from-mochiweb-html) – legoscia

+0

Спасибо @legoscia за этот комментарий , Очень ценю. – KonradPrg

ответ

0

Теперь у меня есть:

[{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -5 ">>]}, 
{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -15 ">>]}, 
{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 10 ">>]}, 
{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 12 ">>]}, 
{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" 20 ">>]}, 
{<<"td">>,[{<<"id">>,<<"temp">>}],[<<" -5 ">>]}] 

Ok я получил, что:

[<<" -5 ">>] 

Как только извлечь -5?

+0

Вы можете использовать [binary_to_integer/1] (http://erlang.org/doc/man/erlang.html#binary_to_integer-1), но сначала вам нужно отфильтровать пробелы. Вы можете использовать [binary: part/2] (http://www.erlang.org/doc/man/binary.html#part-2) 'binary: part (ParsedInteger, {1, byte_size (ParsedInteger) - 2}) '. Или используйте [понимание битовой строки] (http://erlang.org/doc/reference_manual/expressions.html#id81778): '<< <> || <><= ParsedInteger, Char/= $ >>. 'Этот' $ 'означает код ascii для пробела. Точно так же, как '$ A' означает ascii-код A. –

+0

Отлично! Огромное спасибо! – KonradPrg

Смежные вопросы