2011-12-13 14 views
5

Ho il seguente codice HTMLCome sostituire un elemento?

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

e voglio trovare il primo legame con jsoup e sostituirlo con un testo

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

posso sostituire solo l'HTML interno con elem.html("foo") o stampare l'outerHTML con elem.outerHtml()

Qualcuno sa come posso ottenere questo?

risposta

13

Ho trovato la risposta!

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

Una volta trovato l'elemento che si desidera lavorare, è possibile applicare i comandi, come spiegato qui: http://jsoup.org/cookbook/modifying-data/set-html

non ho potuto farlo bene. Sto cercando in questo modo:

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

Ma sto ottenendo questo:

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

ho ancora Non lo so il modo esatto per scambiare i contenuti di un elemento URL.

I'd piace avere, come risultato:

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

Come poteva generare io cancellare il href che è inbetween?

+0

La cosa che non stavo facendo era prendere l'elemento sbagliato con cui lavorare. Il modo migliore che ho trovato, fino ad ora, per selezionare l'elemento giusto è quello di scorrere su tutti gli elementi. Un ciclo annidato aiuterebbe se ancora non trovasse quello esatto. Ad esempio: per (Elemento elem: contElems) { if (elem.id()! = "") System.out.println (elem.id()); \t Elementi contElems1 = contElems.select ("href, a [href], a [data-href], link [href], a [title]"); per (Element elem1: contElems1) {// inserire il codice qui } // (e/o) inserire il codice qui } –

+0

Non ricevo sapere come mettere un'interruzione di linea nel commento di cui sopra ... –

Problemi correlati