刚刚开始探索Jsoup库,因为我将其用于我的一个项目。我尝试使用Google搜索,但是找不到可以帮助我的确切答案。这是我的问题,我有一个带有meta标签的html文件,如下所示
<meta content="this is the title value" name="d.title">
<meta content="this is the description value" name="d.description">
<meta content="language is french" name="d.language">
像这样的Java pojo,
public class Example {
private String title;
private String description;
private String language;
public Example() {}
// setters and getters go here
}
现在,我想解析html文件并提取d.title内容值,并将其存储在Example.title和d.description值的“ content”中,并将其存储在Example.description中,依此类推。
我通过阅读jsoup食谱完成的工作有点像,
Document doc = Jsoup.parse("test.html");
Elements metaTags = doc.getElementsByTag("meta");
for (Element metaTag : metaTags) {
String content = metaTag.attr("content");
String content = metaTag.attr("name");
}
要做的是遍历所有元标记以获取其“内容”和“名称”属性的值,但是我想要的是获取其“名称”属性为“ d.title”的“内容”属性的值这样我就可以将它存储在Example.title中
更新: @PJMeisch下面的答案实际上解决了这个问题,但是我喜欢的代码太多(试图避免做完全相同的事情)。我的意思是我在想可能可以做类似的事情
字符串标题= metaTags.getContent(“ d.title”)
其中d.title是“ name”属性的值这样,它将减少代码行,我还没有找到这种方法,但是也许是因为jsoup还是一个新手,这就是我问的原因。但是,如果不存在这样的方法(如果这样做的话,那就更好了,因为它会使生活更轻松),我会选择PJMeisch说。
好的,所有代码:
Document doc = Jsoup.parse("test.html");
Elements metaTags = doc.getElementsByTag("meta");
Example ex = new Example();
for (Element metaTag : metaTags) {
String content = metaTag.attr("content");
String name = metaTag.attr("name");
if("d.title".equals(name)) {
ex.setTitle(content);
}
if("d.description".equals(name)) {
ex.setDescription(content);
}
if("d.language".equals(name)) {
ex.setLanguage(content);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句