2010-04-18 1 views
0

У меня есть приложение для Android, которое захватывает некоторые данные из внешнего источника XML. Я раздел некоторые HTML из одного из элементов XML, но это в формате:Регулярное выражение Java (Android) для выделения HTML-абзаца

<p class="x">Some text...</p> 
<p>Some more text</p> 
<p>Some final text</p> 

Я хочу, чтобы извлечь средний текст абзаца, как я могу это сделать? Будет ли регулярное выражение лучшим способом? Я действительно не хочу начинать включать внешние библиотеки разбора HTML.

ответ

1

RegEx match open tags except XHTML self-contained tags

Итак, я задам вопрос, который оборачивает связного ответить: вы пытались с помощью XML-парсер вместо этого?

Вы также можете получить некоторые идеи из некоторых других ответов, но я попытаюсь избежать пути регулярного выражения. Как предложил Макарс, очистите его на сервере, если сможете. Если нет, оберните эти три элемента <p> в один корневой элемент и проанализируйте его с помощью SAX или что-то еще, обратив внимание на элемент 2-го абзаца.

0

Если это просто, просто выполните регулярное выражение.

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

0

просто делает раскол: http://developer.android.com/reference/java/lang/String.html#split(java.lang.String)

на "</p><p>" и принимая во второй записи в возвращаемый массив будет на самом деле сделать это довольно быстро

-1

Если вы собираетесь разобрать файл XML, загруженный с веб-сайта, то есть не имеет ничего общего с Android.

0

Регулярное выражение, вероятно, будет выглядеть примерно так: .*?>(.*?)<.* И вы получаете доступ к сгруппированному контенту, вызывая группу (1) в объекте Matcher.

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