【发布时间】:2011-02-09 11:31:39
【问题描述】:
我有一个从外部 XML 源获取一些数据的 Android 应用程序。我已经从其中一个 XML 元素中删除了一些 HTML,但格式如下:
<p class="x">Some text...</p>
<p>Some more text</p>
<p>Some final text</p>
我想提取中间段落文本,我该怎么做?正则表达式会是最好的方法吗?我真的不想开始包含外部 HTML 解析库。
【问题讨论】:
我有一个从外部 XML 源获取一些数据的 Android 应用程序。我已经从其中一个 XML 元素中删除了一些 HTML,但格式如下:
<p class="x">Some text...</p>
<p>Some more text</p>
<p>Some final text</p>
我想提取中间段落文本,我该怎么做?正则表达式会是最好的方法吗?我真的不想开始包含外部 HTML 解析库。
【问题讨论】:
如果简单,就做一个正则表达式。
如果您从自己拥有的外部来源获取 XML,我会在那里对其进行解析。
【讨论】:
RegEx match open tags except XHTML self-contained tags
那么,我将问一个包含链接到答案的问题:您是否尝试过使用 XML 解析器?
您也可能从那里的其他一些答案中得到一些想法,但我会尽量避免使用正则表达式路径。正如 Macarse 建议的那样,如果可以的话,请在服务器上清理它。如果没有,请将这三个 <p> 元素包装在一个根元素中,并使用 SAX 或其他方式对其进行解析,注意第二段元素。
【讨论】:
只是进行拆分:http://developer.android.com/reference/java/lang/String.html#split(java.lang.String)
在"</p><p>" 上并在返回的数组中获取第二个条目实际上会很快完成
【讨论】:
如果你要解析从网站下载的 XML 文件,那么与 Android 无关。
【讨论】:
正则表达式可能类似于:.*?>(.*?)<.*
您可以通过在 Matcher 对象上调用 group(1) 来访问分组内容。
【讨论】: