我正在开发一个Android应用程序,该应用程序可从Wikia页面提取信息并将其显示在该应用程序中。我目前正在拉动所有类别以进行导航,并设置了我的应用程序以在WebView中显示页面,但我只想拉动信息并自行设置格式,而不是通过传递给WebView来使其廉价。
我用来获取文本的是:http://scottlandminecraft.wikia.com/api.php?format=xml&action=query&titles=ZackScott&prop=revisions&rvprop=content
我的问题是文本重新组合在一起,是否有人对如何使其更加格式化有任何想法,以便我可以从标签中进行解析,还是我在浪费时间试图找到它?如果是这样,最好从提取的文本中找到标识符来解析我需要的文本,还是有更好的方法?
感谢您的投入和时间。
最佳答案
如果您不想自己解析Wiki标记,最简单的方法是检索已解析的页面HTML版本,然后使用HTML解析器(如Hasham建议的jsoup)对其进行处理。
除了仅抓取普通的Wiki用户界面(这将使您的页面HTML包裹在导航皮肤中)之外,还有两种获取MediaWiki页面的HTML文本的方法:
action=parse
结合使用,它将返回包装在MediaWiki API XML(或JSON/YAML/等)响应中的页面HTML,如下所示:index.php
脚本与 action=render
一起使用,它将仅返回页面HTML:附言由于您在问题中提到了各个部分,因此请注意,
action=parse
API模块可以使用prop=sections
(甚至是prop=sections|text
)返回有关页面上各个部分的信息。有关示例,请参见以下API查询: