我一直在使用Jsoup从网站上抓取HTML数据,但是我需要获取javascript标记中的一部分XML,因为它有一堆我需要提取并下载图像的URL。这是它的样子:
<script type="text/javascript">
var xmlTxt = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><mediaObject><mediaList rail="1"><carMedia thumbnail="http://images.blah.com/scaler/80/60/images/2011/9/22/307/179/22343202654.307179719.IM1.MAIN.565x421_A.562x421.jpg" url="http://images.blah.com/scaler/544/408/images/2011/9/22/307/179/22343202654.307179719.IM1.MAIN.565x421_A.562x421.jpg" type="INV_PHOTO" mediaLabel="" category="UNCATEGORIZED" sequence="2"/></mediaList></mediaObject>';'
然后是脚本标记内的一大堆javascript代码。如果我有一个Jsoup Document
,从页面中提取这些URL的最佳方法是什么?如果我不能用Jsoup做,我怎么能这样做?问题是图像保存在轮播中,因此页面上的HTML仅显示当前在轮播中显示的图像的来源。
答案 0 :(得分:1)
Fist,你可以使用javascript绑定将xmlTxt导入java。见http://developer.android.com/guide/webapps/webview.html#BindingJavaScript
其次,解析你的xml。我不确定你可以在一般XML(而不是HTML)中使用Jsoup。如果你不能,你可以使用android builtin xmlpullparser(http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html)或其他xml库。
答案 1 :(得分:0)
嗯,我做的很脏,但它应该工作。我希望有一个更优雅的解决方案,但是现在我只是将doc转换为字符串(doc.toString()
),然后获取我想要的起始和结束XML标记的开始和结束索引。从那里我应该能够使用内置的Java XML解析器来完成剩下的工作。