我想找到元素"buddyname"并在HTML文件中获取value =""的元素,我将其放入StringBuffer,在本例中为5342test.value =""中的元素可以更改,因此我无法直接搜索5342test.
<fieldset style="display:none"><input type="hidden" name="buddyname" value="5342test"/></fieldset>
Run Code Online (Sandbox Code Playgroud)
我怎么能用jsoup做到这一点?或者是否有一种更简单的方法,我已经尝试过Pattern/Matcher,但是因为我遇到了问题而没有成功Pattern.compile("<input[^>]*?value\\s*?=\\s*?\\\"(.*?)\\\")");
下面是一些示例代码.先感谢您.
Document doc = Jsoup.parse(page); // page is a StringBuffer
Elements td = doc.select("fieldset");
for (Element td : tds) {
String tdText = td.text();
System.out.println(tdText);
}
Run Code Online (Sandbox Code Playgroud) 我在一组元素中有html,所以可能还有其他类似的项目
<b><a title="San Francisco/Twin Peaks-Lake Merced">Twin Peaks</a></b>
Run Code Online (Sandbox Code Playgroud)
但是我想用这样的jsoup来清理它
<b>Twin Peaks</b>
Run Code Online (Sandbox Code Playgroud)
使用白名单是最好的主意吗?
我们使用Jsoup.clean(String,Whitelist)来处理一些输入,看起来Jsoup在可接受的标签之前添加了一个无关的换行符.我见过一些人在互联网上发布这个问题,但是无法找到解决方案.
例如,假设我们有一个非常简单的字符串,其中包含一些粗体标记,如下所示:
String htmlToClean = "This is a line with <b>bold text</b> within it."
String returnString = Jsoup.clean(htmlToClean, Whitelist.relaxed());
System.out.println(returnString);
Run Code Online (Sandbox Code Playgroud)
调用clean()方法的原因是这样的:
This is a line with \n<b>bold text</b> within it.
Run Code Online (Sandbox Code Playgroud)
请注意,在打开粗体标记之前附加了无关的"\n".我似乎无法在追加这一点的源头追踪(尽管我承认我是Jsoup的新手).
有没有人遇到这个问题,更好的是,已经找到一些方法来避免这种额外的,不需要的字符以这种方式附加到字符串?
我有以下html:
<div>
<h1>
<a>1</a>
</h1>
<h2>
<a>2<a>
</h2>
<h3>
<a>3</a>
</h3>
</div>
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来选择所有锚点而不是div> h1> a,div> h2> a,div> h3> a.我正在寻找像div>(h1,h2,h3)> a的东西
谢谢,Trung
我正在尝试使用Jsoup解析html文档以获取所有标题标记.另外我需要将标题标签分组为[h1] [h2]等...
hh = doc.select("h[0-6]");
Run Code Online (Sandbox Code Playgroud)
但这给了我一个空阵列.
我有一个表标签
<table width="100%" align="center"/>
Run Code Online (Sandbox Code Playgroud)
到目前为止Jsoup提供
Document document =Jsoup.parse(htmlString);
document.select("table[width=100%],table[align=center]");
Run Code Online (Sandbox Code Playgroud)
这是OR命令,即如果任何一个匹配则填充元素.为了选择宽度= 100%且对齐=中心的表格,我做了以下操作
Elements element =document.select("table[align=center]");
element =element.select("table[width=100%]");
Run Code Online (Sandbox Code Playgroud)
所以我要问的是,就像这个OR组合一样
document.select("table[width=100%],table[align=center]");
Run Code Online (Sandbox Code Playgroud)
是否有任何AND组合选择器,即宽度= 100%且对齐=中心的表格.提前致谢
我想使用jsoup在每个标签后提取一个文本.有没有办法直接选择它,还是我必须在整个事情上执行.substring?
<div>
<a href="#"> I don't want this text </a>
**I want to retrieve this text**
</div>
Run Code Online (Sandbox Code Playgroud) 即使这听起来太基础了,我想问一下如何使用Jsoup从doc中删除元素.
我试着寻找它,但没有成功.
这是问题:
Elements myNewElements = doc.getElementsByAttribute("hello");
//Now I need to perform some other methods on myNewElements before removing.
//Hence..suggested method says,
doc.getElementsByAttribute("hello").remove();
Run Code Online (Sandbox Code Playgroud)
这很好用.但我相信一次又一次地选择相同的元素可以证明记忆力很大.可能吗 ?
doc.select(myNewElements).remove();
Run Code Online (Sandbox Code Playgroud)
//尝试从doc中选择myNewElements.
我需要将HTML转换为纯文本.我对格式化的唯一要求是在纯文本中保留新行.新行不仅应显示在<br>其他标签的情况下,例如<tr/>,也应显示</p>新行.
用于测试的示例HTML页面是:
请注意,这些只是随机网址.
我已经尝试了在这个StackOverflow问题的答案中提到的各种库(JSoup,Javax.swing,Apache utils)来将HTML转换为纯文本.
使用JSoup的示例:
public class JSoupTest {
@Test
public void SimpleParse() {
try {
Document doc = Jsoup.connect("http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter09/scannerConsole.html").get();
System.out.print(doc.text());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
HTMLEditorKit示例:
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
public class Html2Text extends HTMLEditorKit.ParserCallback {
StringBuffer s;
public Html2Text() {}
public void parse(Reader in) throws IOException {
s = new StringBuffer();
ParserDelegator delegator = new ParserDelegator();
// the …Run Code Online (Sandbox Code Playgroud) 我想提取的HTML页面(S),其放置在文本p和li标签,这样我就可以开始来标记页面构造为每个页面反向索引(ES)为了回答搜索查询.
我如何p使用jsoup 获取标签
Elements e = doc.select("");
Run Code Online (Sandbox Code Playgroud)
可能是该参数中要写的字符串是什么?