2011-12-13 38 views
5

Tôi có HTML sauLàm cách nào để thay thế một phần tử?

<html> 
<head> 
    <title>test</title> 

</head> 
<body> 
    <table> 
    <caption>table title and/or explanatory text</caption> 
    <thead> 
    <tr> 
    <th>header</th> 
</tr> 
</thead> 
<tbody> 
     <tr> 
     <td id=\"test\" width=\"272\"></td> 
</tr> 
</tbody> 
</table> 
<a href=\"http://www.google.fi\" style=\"color:black\">Test link</a> 
<a href=\"http://www.google.fi\"><img src=\"http://www.google.se/images/nav_logo95.png\" /></a>" 
</body> 
</html>; 

Và tôi muốn tìm liên kết đầu tiên với jsoup và thay thế bằng một văn bản

Element elem = page.select("a[href=" + link.getUrl() + "]:contains(" + link.getName() + ")").first(); 

Tôi chỉ có thể thay thế cho HTML bên trong với elem.html("foo") hoặc in outerHtml với elem.outerHtml()

Có ai biết cách tôi có thể đạt được điều này không?

Trả lời

13

Tôi đã tìm thấy câu trả lời!

TextNode text = new TextNode("foo", ""); 
elem.replaceWith(text); 
0

Một khi bạn đã tìm thấy các yếu tố mà bạn muốn làm việc với, bạn có thể áp dụng các lệnh như đã giải thích ở đây: http://jsoup.org/cookbook/modifying-data/set-html

tôi không thể làm cho nó đúng. Tôi đang cố gắng này:

elemento.prepend("<a href='www.test.com'>");  
elemento.html("Roberto C. Santos.");     
elemento.append("</a>"); 
elemento.wrap("<a href='www.test.com'> </a>"); 

Nhưng tôi nhận được điều này:

<td><a href="www.test.com"> <a style="" target="_self" title="" href="http://ivv.veveivv.vvzenes.com.br/mao/ara/ccacao" data-mce-href="resolveuid/5cc1c7c8c9efcacaaeedec22a9c69a54" class="internal-link">Roberto C. Santos.</a></a></td> 
    </tr> 

tôi vẫn không biết một cách chính xác để trao đổi các nội dung của một phần tử URL.

I'd muốn có, như là kết quả:

<a href='www.test.com'> Roberto C. Santos.</a>" 

Làm thế nào tôi coul'd xóa href đó là Inbetween?

+0

Điều mà tôi đã làm không đúng là lấy yếu tố sai để làm việc. Cách tốt nhất mà tôi tìm thấy, cho đến bây giờ, để chọn phần tử phù hợp là lặp qua tất cả các phần tử. Một vòng lặp lồng nhau sẽ giúp đỡ nếu vẫn không tìm được chính xác. Ví dụ: cho (Element elem: contElems) { if (elem.id()! = "") System.out.println (elem.id()); \t Các yếu tố contElems1 = contElems.select ("href, [href], [dữ liệu-href], liên kết [href], [tiêu đề]"); cho (Yếu tố elem1: contElems1) { // Đặt mã tại đây } // (hoặc/và) đặt mã tại đây } –

+0

Tôi không biết cách đặt ngắt dòng trong nhận xét ở trên ... –

Các vấn đề liên quan