我正在编写一个 Android 应用程序,它可以读取RSS
提要、获取HTML
文章、处理文章HTML
以仅存储重要内容(故事正文,包括段落和图像/图像标题等),并将其显示给用户。
除了最后一步,我什么都做了。
这些文章显然会有不同的文本、不同的图像位置等,我希望能够保留这些元素的顺序(就像它们在获取时一样)。
实现这一点的最佳方法是什么?我真的不想用WebView
...
提前致谢。
编辑 请查看我的解决方案接受的答案的评论。
我能看到做这样的事情的最好方法是转义每个 html 标签并适当地处理每个标签。假设您对 head 元素和元数据不感兴趣,您可以为以下 html 页面执行类似下面的伪代码
<html>
...
<head>
...
</head>
<body>
<h1> some text probably your title </h1>
<p1> first paragraph </p1>
<p2> second paragraph </p2>
<img src='/some_url' title='some_title'>
</body>
</html>
现在,对于您需要做的事情,还请注意,html 页面的实际设置方式将取决于网页/rss 提要,因此可能需要对许多站点进行修改,但您仍想做这样的事情:不是当我说 llok 时,我的意思是一些如何搜索子字符串(如果在设备上,则为 java)任何你希望从设备上下来的东西
find("<body>") everything before can be thrown away
find ("<img" or "<p1" or "<h1" or "<div") handle accordingly
(这很可能会在页面来源上发生变化)
but for say <p1 found
find (">") represents end of tag attribute pull all of this until delimiter tag "</p1>"
你有你的第一段图像标签
ie. find("<img")
then find("title=") or find("src=")
这些之后的子字符串将分别是图像的图像标题和源文件,而不是这些值将被包装在其中之一'
或"
这不是一个完整的解决方案,但是嘿,我已经看到了您的尝试,因此这是一个起点