搜尋

首頁  >  問答  >  主體

在Java中解析HTML字串:如何做

<p>給定字串「<table><tr><td>Hello World!」</td></tr></table>",取得表示它的DOM元素的(最簡單的)方法是什麼?</p>
P粉193307465P粉193307465482 天前563

全部回覆(2)我來回復

  • P粉731861241

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

    如果你有一個包含HTML的字串,你可以像這樣使用Jsoup函式庫來取得HTML元素:

    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>

    回覆
    0
  • P粉176980522

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

    我在某個地方發現了這個(不記得在哪裡了):

    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;
    }

    回覆
    0
  • 取消回覆