ci-cd-debugging / jsoup_ex_bug

MIT License
0 stars 1 forks source link

O método nextElementSibling() retorna null depois de adicionar um elemento a um documento que foi clonado #1

Open ericksonlbs opened 10 months ago

ericksonlbs commented 10 months ago

Se eu clonar um documento e adicionar um elemento pelo método after() e tentar obter o novo elemento pelo método nextElementSibling() obtenho nulo. Ao mesmo tempo, o método nextSibling() retorna este elemento com sucesso. Se eu fizer o mesmo com o documento original, funciona corretamente.

Código:

String html = "<!DOCTYPE html><html lang=\"en\"><head></head><body><div>Initial element</div></body></html>";
Document original = Jsoup.parse(html);
Document clone = original.clone();

Element originalElement = original.body().child(0);
originalElement.after("<div>New element</div>");
Element originalNextElementSibling = originalElement.nextElementSibling();
Element originalNextSibling = (Element) originalElement.nextSibling();
System.out.println("originalNextElementSibling:\n" + originalNextElementSibling);
System.out.println("originalNextSibling:\n" + originalNextSibling);
System.out.println();

Element cloneElement = clone.body().child(0);
cloneElement.after("<div>New element</div>");
Element cloneNextElementSibling = cloneElement.nextElementSibling();
Element cloneNextSibling = (Element) cloneElement.nextSibling();
System.out.println("cloneNextElementSibling:\n" + cloneNextElementSibling);
System.out.println("cloneNextSibling:\n" + cloneNextSibling);

Saída:

originalNextElementSibling:
<div>
 New element
</div>
originalNextSibling:
<div>
 New element
</div>

cloneNextElementSibling:
null
cloneNextSibling:
<div>
New element
</div>
ci-cd-debugging-dev commented 10 months ago

Fixed in pull request #2