gpt4 book ai didi

html - 在XHTML文档的grails中使用JSOUP获取两个不同标签之间的文本

转载 作者:行者123 更新时间:2023-12-02 14:51:23 24 4
gpt4 key购买 nike

我正在尝试在我的xhtml文档中获取标记ae_definedtermtitlebegin的所有文本。该标签在整个文档中出现1000次。我正在尝试创建与此标签关联的文本列表。我正在使用JSOUP和grails。到目前为止,代码已编写

Document doc = Jsoup.parse(file,"UTF-8")
Elements pres = doc.getElementsByTag("ae_definedTermTitleBegin");
println pres //This prints a list which contains the tag itself fr eg. [<ae_definedtermtitlebegin/>,<ae_definedtermtitlebegin/>,<ae_definedtermtitlebegin/>....]
for (Element pre : pres) {
println pre.text() //prints nothing. I assumed this would print the text within the tag
}

谢谢您的帮助。真的很感激。
在xhtml文件中,文字看起来像
<ae_definedTermTitleBegin />Applicable Permitted Investment
Amount<ae_definedTermTitleEnd />

,我意识到我的内容在两个不同的标签之间。如何获取这两个标签之间的文本?

最佳答案

import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;
import org.jsoup.nodes.TextNode;

public class Main {

public static void main(String[] args) throws Exception {
/* String html = "<ae_definedTermTitleBegin />" +
"Applicable Permitted Investment Amount" +
"<ae_definedTermTitleEnd />";
*/
String html = "<ae_definedTermTitleBegin />" +
"Applicable Permitted Investment Amount" +
"<ae_definedTermTitleBegin />" +
"Inner example" +
"<ae_definedTermTitleEnd />" +
"This is harder" +
"<ae_definedTermTitleEnd />";

Document doc = Jsoup.parse(html);
List<TextNode> lines = getTextBetweenTags(doc.getElementsByTag("body").get(0).childNodes(),
"ae_definedTermTitleBegin", "ae_definedTermTitleEnd");

System.out.println(lines);
}

private static List<TextNode> getTextBetweenTags(List<Node> listOfNodes, String tagStart, String tagEnd) {

List<TextNode> lines = new ArrayList<>();

int inRangeCounter = 0;
for(Node node : listOfNodes) {
if(node.nodeName().equalsIgnoreCase(tagStart)) {
inRangeCounter++;
} else if(node.nodeName().equalsIgnoreCase(tagEnd)) {
inRangeCounter--;
} else if(inRangeCounter > 0 && node instanceof TextNode) {
lines.add((TextNode)node);
}
}

return lines;
}
}

关于html - 在XHTML文档的grails中使用JSOUP获取两个不同标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130567/

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