gpt4 book ai didi

java - 使用 jsoup 库解析 html 元标记

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:29 24 4
gpt4 key购买 nike

刚开始探索 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 是“name”属性的值这样它将减少代码行,我还没有找到这样的方法,但也许那是因为我对 jsoup 还是新手,这就是我问的原因。但是,如果不存在这样的方法(如果它确实存在就好了,因为它会让生活更轻松),我会选择 P.J.Meisch 所说的。

最佳答案

好的,所有的代码:

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);
}
}

关于java - 使用 jsoup 库解析 html 元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37591685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com