Set the HTML of an element
Problem
You need to modify the HTML of an element.
Solution
Use the HTML setter methods in Element
:
Element div = doc.select("div").first(); // <div></div>
div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</p></div>
div.prepend("<p>First</p>");
div.append("<p>Last</p>");
// now: <div><p>First</p><p>lorem ipsum</p><p>Last</p></div>
Element span = doc.select("span").first(); // <span>One</span>
span.wrap("<li><a href='http://example.com/'></a></li>");
// now: <li><a href="http://example.com"><span>One</span></a></li>
Discussion
Element.html(String html)
clears any existing inner HTML in an element, and replaces it with parsed HTML.Element.prepend(String first)
andElement.append(String last)
add HTML to the start or end of an element's inner HTML, respectivelyElement.wrap(String around)
wraps HTML around the outer HTML of an element.
See also
You can also use the Element.prependElement(String tag)
and Element.appendElement(String tag)
methods to create new elements and insert them into the document flow as a child element.
Cookbook
Introduction
Input
- Parse a document from a String
- Parsing a body fragment
- Load a Document from a URL
- Load a Document from a File
Extracting data
- Use DOM methods to navigate a document
- Use CSS selectors to find elements
- Use XPath selectors to find elements and nodes
- Extract attributes, text, and HTML from elements
- Working with relative and absolute URLs
- Example program: list links
Modifying data
- Set attribute values
- Set the HTML of an element
- Setting the text content of elements