search

Home  >  Q&A  >  body text

Parsing HTML strings in Java: How to do it

<p>Given the string "<table><tr><td>Hello World!"</td></tr></table>", get the ( What is the simplest method?</p>
P粉193307465P粉193307465485 days ago565

reply all(2)I'll reply

  • P粉731861241

    P粉7318612412023-08-02 14:55:30

    If you have a string containing HTML, you can use the Jsoup library like this to get the HTML elements:

    String htmlTable= "<table><tr><td>Hello World!</td></tr></table>";
    Document doc = Jsoup.parse(htmlTable);
    
    // then use something like this to get your element:
    Elements tds = doc.getElementsByTag("td");
    
    // tds will contain this one element: <td>Hello World!</td>

    reply
    0
  • P粉176980522

    P粉1769805222023-08-02 00:57:10

    I found this somewhere (can’t remember where):

    public static DocumentFragment parseXml(Document doc, String fragment)
     {
        // Wrap the fragment in an arbitrary element.
        fragment = "<fragment>"+fragment+"</fragment>";
        try
        {
            // Create a DOM builder and parse the fragment.
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            Document d = factory.newDocumentBuilder().parse(
                    new InputSource(new StringReader(fragment)));
    
            // Import the nodes of the new document into doc so that they
            // will be compatible with doc.
            Node node = doc.importNode(d.getDocumentElement(), true);
    
            // Create the document fragment node to hold the new nodes.
            DocumentFragment docfrag = doc.createDocumentFragment();
    
            // Move the nodes into the fragment.
            while (node.hasChildNodes())
            {
                docfrag.appendChild(node.removeChild(node.getFirstChild()));
            }
            // Return the fragment.
            return docfrag;
        }
        catch (SAXException e)
        {
            // A parsing error occurred; the XML input is not valid.
        }
        catch (ParserConfigurationException e)
        {
        }
        catch (IOException e)
        {
        }
        return null;
    }

    reply
    0
  • Cancelreply