所以是的,假设我有这段HTML
<p>And finally, how about some <a href="http://www.yahoo.com/">Links?</a></p>
我希望访问和修改“最后,只有一些”部分,并得到这个:
<p>new text <a href="http://www.yahoo.com/">Links?</a></p>
我似乎无法弄清楚如何。这是我到目前为止所尝试的内容:
Document doc = null;
try {
doc = Jsoup.connect("http://csb.stanford.edu/class/public/pages/sykes_webdesign/05_simple.html").userAgent("Mozilla").get();
} catch (IOException e1) {
e1.printStackTrace();
}
Elements d = doc.body().children();
Element e = d.get(20); //Assuming the HTML line in question is found at index 20
e.text("new text") //just outputs <p>new value</p>, which is not good for me
似乎我可以通过
访问它Element e = d.get(20);
System.out.println("\n"+e.ownText()); //outputs: And finally, how about some
但修改它不起作用。
Element e = d.get(20);
String s = e.toString().replace(e.ownText(), "new text");
e.text(s);
System.out.println(e.toString());
上面代码的输出是
<p><p>changed <a href="http://www.yahoo.com/">Links?</a></p></p>
似乎将标签作为文字,但我希望它们为&lt;或者&gt;因为我必须用新文本重新构建网页。
非常感谢任何形式的帮助。
答案 0 :(得分:1)
像
这样的东西Element e = d.get(20);
e.text("new text");
e.append("<a href=\"http://www.yahoo.com/\">Links?</a>");//lets you add HTML.
如果链接是动态的并且您不想更改它,您可以提前存储它并稍后使用
Element e = d.get(20);
Element link = e.child(0);
e.text("new text");
e.append(link.toString());