我从网站上获取Rss。在描述标签中有一个我想向用户显示的图像。我正在使用此代码来获取它:
public void setDescription(String description) {
this.description = description;
//parse description for any image or video links
if (description.contains("<img style=")){
String imgg = description.substring(description.indexOf("<img style="));
String cleanUp = imgg.substring(0, imgg.indexOf(">")+1);
imgg = imgg.substring(imgg.indexOf("src=") + 5);
int indexOf = imgg.indexOf("\"");
if (indexOf==-1){
indexOf = imgg.indexOf("\"");
}
imgg = imgg.substring(0, indexOf);
setImgLink(imgg);
this.description = this.description.replace(cleanUp, "");
} else{
String imgg2="replace_image.png";
setImgLink(imgg2);
}
}
我的问题是,如果我的rss网站改变了xml中的内容,我会得到我的替换图片。例如,如果img样式更改为图像src或类似的东西。
有没有办法解决它,每次从描述中获取图像? 我发现我可以使用这样的东西,但我无法使它工作http://developer.android.com/reference/android/text/Html.html
感谢:!)
答案 0 :(得分:0)
而不是使用正则表达式更好地使用DOM和XPATH来提取图像源。这样即使HTML发生变化,您的解决方案仍然有效。
您似乎在description
中有描述,并且您想要imgg
中的图片路径。试试这个:
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(description);
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//img";
Node imgNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
String imgg = imgNode.getAttribute("src");