2016-03-08 3 views
0

У меня есть длинная строка с валютой, которые выглядят так:Как анализировать HTML-элемент?

...<option value="USD">USD - United States Dollar</option> <option value="JPY">JPY - Japanese Yen</option>... 

Какой самый быстрый способ для того, чтобы извлечь 2 значения:

USD 
USD - United States Dollar 
+1

Я не знаю, что такое «самый быстрый» способ, но [jsoup.org] (http://jsoup.org). –

+0

Вы имеете в виду, как вы извлекаете 'X' и' Y' из строки '<значение параметра = X> Y'? – Assaf

+0

@Assaf Да, это то, что я хочу сделать –

ответ

1

Если это действительно просто получить определенные подстроки из string, то я бы пошел с регулярным выражением здесь.

Используйте группу захвата (убедитесь, что она не жадная), чтобы получить интересующие вас части интересующей вас строки (в данном случае это свойство value и содержимое тега).

val str = 
    """<option value="USD">USD - United States Dollar</option><option value="JPY">JPY - Japanese Yen</option>""" 
val pattern = """<option value="(.+?)">(.+?)</option>""".r 

pattern.findAllMatchIn(str).foreach(x => println(x.group(1) + " " + x.group(2))) 
/* output: 
* USD USD - United States Dollar 
* JPY JPY - Japanese Yen 
*/ 
+0

Возможно, вы можете напрямую использовать: 'pattern.findAllMatchIn (str) .foreach (x => println (x.group (1) +" "+ x.group (2)))' – chengpohi

+0

Правильно сэр, считайте меня наказанным. – Assaf

+0

Использование регулярного выражения для разбора html [обычно не очень хорошая идея] (http://stackoverflow.com/a/1732454/2292812) –

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