gpt4 book ai didi

java - 使用 Jsoup 处理新行/换行符

转载 作者:行者123 更新时间:2023-11-30 00:31:34 31 4
gpt4 key购买 nike

在通过 Jsoup 解析 Jspx 文件时,我注意到当遇到新行并且如果存在结束 html 标记时,jsoup 会将内容视为标记外部。另外,我不希望内容出现在介于两者之间的输出中。

例如:-

我的 jspx 文件:-

<div xmlns:spring="http://www.springframework.org/tags"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:util="urn:jsptagdir:/WEB-INF/tags/util"
xmlns:jsp="http://java.sun.com/JSP/Page">

<div> I only require this text </div>

<script type="text/javascript">
var myVar= '${myVar}',
var myVar1= '${myVar1}',
var myVar2= '${myVar2}',
var myVar3= '${myVar3}',
var myVar4= '${myVar4}';
</script>

在java代码中:-

Document doc = Jsoup.parse(s);
String text = doc.body().text();

现在,当我运行这段代码时:-

实际营业收入:-

xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:util="urn:jsptagdir:/WEB-INF/tags/util"
xmlns:jsp="http://java.sun.com/JSP/Page">

I only require this text

var myVar= '${myVar}',
var myVar1= '${myVar1}',
var myVar2= '${myVar2}',
var myVar3= '${myVar3}',
var myVar4= '${myVar4}';

预期是:-

I only require this text

添加评论时会发生同样的事情,在几行之后我将关闭评论,然后它也会在输出中显示 ("-->")。

我可能做错了什么,或者可能不知道 Jsoup 的完整范围。谁能帮我解决这个问题?

谢谢。

最佳答案

有了给定的输入和您的命令,JSoup 实际上正在做正确的事情。

让我们分解一下:

Document doc = Jsoup.parse(s);

当呈现任意字符串进行解析时,JSoup 会将其包装在 <html> 中和 <body>生成结果 Document 的标签有点有效。

String text = doc.body().text();

现在您要求 all the text of the document's body and all its children .因此,JSoup 很高兴地为您提供了这一点 - 剥离它可以识别的标签,并为您留下比您想要的更多的东西。

JSoup 的真正强大之处在于 select() method on Elements , 所以让我们用它来缩小到 div感兴趣的:

String text = doc.body().select("div div").text();

如果您不熟悉 CSS 和/或 JQuery,这只是简单地选择了属于 div 的元素。在另一个里面 div - 它应该很好地挑选出你的目标文本。

请注意,如果您想要真正安全,最好确定感兴趣的 div(即 <div id="mydiv">I only require this text</div> ),然后也使用 ownText优于 text :

String text = doc.body().select("div#mydiv").ownText();

ownText() only gets the immediate text of this element ,所以如果有人向 #mydiv 添加子元素它不会破坏任何东西/

关于java - 使用 Jsoup 处理新行/换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278527/

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