【发布时间】:2016-10-02 04:20:01
【问题描述】:
刚开始探索 Jsoup 库,因为我将在我的一个项目中使用它。我尝试使用谷歌搜索,但找不到可以帮助我的确切答案。这是我的问题,我有一个带有如下元标记的 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 值中并存储在 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 中
更新: @P.J.Meisch 下面的答案实际上解决了这个问题,但我喜欢的代码太多(试图避免做完全相同的事情)。我的意思是我在想有可能做类似的事情
字符串标题 = metaTags.getContent("d.title")
其中 d.title 是“名称”属性的值 这样它会减少代码行,我还没有找到这样的方法,但也许那是因为我还是 jsoup 的新手,这就是我问的原因。但是如果不存在这样的方法(如果它确实会很好,因为它会让生活更轻松)我会选择 P.J.Meisch 说的。
【问题讨论】:
标签: java html html-parsing jsoup