Manipulando DOM de Maneira Simples com JSOUP

Postado em Atualizado em

Image

Olá,

Na semana passada precisei manipular uma página XHTML utilizando Java. A maneira mais simples que encontrei e mais efetiva foi o JSOUP que disponibiliza uma API para manipulação e extração dados utilizando o melhor do DOM.

Por exemplo se por algum requisito da aplicação for necessário adicionar um  <h:commandButton> utilizando somente Java o JSOUP é uma mão na roda.

Temos a seguinte página:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
   <title>JSF - JSOUP</title>
</h:head>
<h:body>
  <h3>Apenas Testando!!</h3>
  <h:form>
    <h:inputtext id="name" value="#{helloController.name}"></h:inputtext>
  </h:form>
</h:body>
</html>

Nessa situação por exemplo teríamos que adicionar um <h:commandButton> abaixo do input. Sendo bem “grosso” poderíamos fazer da seguinte maneira:

File input = new File("/home/mmagnani/Desktop/antes.xhtml");
Document doc = Jsoup.parse(input, "UTF-8", "");

BufferedWriter out = new BufferedWriter(new FileWriter("/home/mmagnani/Desktop/depois.xhtml"));

doc.getElementById("name").after("<h:commandButton value=\"Welcome Me\" action=\"welcome\"></h:commandButton>");

out.write(doc.html());
out.close();

Resultado Final:

<!--?xml version="1.0" encoding="UTF-8"?--><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
 <h:head>
    <title>JSF - JSOUP</title>
 </h:head>
<h:body>
<h3>Apenas Testando!!</h3>
<h:form>
<h:inputtext id="name" value="#{helloController.name}"></h:inputtext>
<h:commandbutton value="Welcome Me" action="welcome"></h:commandbutton>
</h:form>
</h:body>
</html>

Espero que isso seja útil em algum momento!

Abraços

Fonte: http://jsoup.org/

2 comentários em “Manipulando DOM de Maneira Simples com JSOUP

    M. Ballem disse:
    22 de novembro de 2013 às 11:24

    Realmente, JSoup é uma biblioteca muito boa para manipular HTML.
    Boa dica!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s