Chcę zastąpić niektóre elementy w plikach HTML, zachowując pozostałą zawartość bez zmian.Analizowanie kodu HTML za pomocą polecenia jsoup i zachowanie oryginalnej zawartości
Document doc = Jsoup.parse("<div id=title>Old</div >\n" +
"<p>1<p>2\n" +
"<table><tr><td>1</td></tr></table>");
doc.getElementById("title").text("New");
System.out.println(doc.toString());
spodziewam się mieć następujący wynik:
<div id=title>New</span></div >
<p>1<p>2
<table><tr><td>1</td></tr></table>
Zamiast tego mam:
<html>
<head></head>
<body>
<div id="title">New</div>
<p>1</p>
<p>2 </p>
<table>
<tbody>
<tr>
<td>1</td>
</tr>
</tbody>
</table>
</body>
</html>
Jsoup dodania:
- zamykające znaczniki p
- DOUB le-cytaty do wartości atrybutów
- tbody
- html, głowy i ciała elementy
Mogę serialise zmodyfikowany HTML z powrotem do oryginału? Jericho robi to, ale nie zapewnia zręcznych metod manipulacji DOM, tak jak robi to Jsoup.
Można to zrobić, jeśli JSoup nie daje przesunięcia charakter elementów. Zobacz http://stackoverflow.com/questions/11387458/get-character-offsets-for-elements-in-jsoup. Potrzebujemy tej funkcji. Niestety, autor JSoup nie odpowiada już na pytania wysłane do grupy jsoup google. – ccleve