Dúvidas DOM

2 respostas
felixcomputer

Pessoal, eu estou fazendo parser de umas paginas html e para isso eu estava utilizando expressões regulares, contudo, não é uma solução muito boa, pq existe a questão de URL mal formada, dentre outras coisas. Aqui msm no GUJ, eu achei um tutorial falando sobre o DOM, e então resolvi estudar como utiliza-lo para obter esses valores.

Estou com algumas duvidas:

  1. Eu quero pegar nesse texto as informações Allow more possibilities for status que está dentro de “dt”, dentro de “a”, depois do span.
<dt><a href="/ticket/4338"><span style="text-decoration: line-through">#4338</span>: Allow more possibilities for status</a></dt>
    <dd>For a production quality triage bug tracking system, trac is lacking an extra state for bugs.  For our purposes this is &#34;resolved&#34; (e.g. tester files bug (new)=&gt; bug goes to developer (assigned) =&gt; developer fixes bug (resolved) =&gt; tester verifies and closes bug (closed). ...</dd>
    <dd>

     <span class="author">By [email removido]</span> &mdash;
     <span class="date">12/05/2006 04:39:15 AM</span>
    </dd>

Quando eu tento pegar dessa forma:

Element s = (Element)elem.getElementsByTagName("dt").item(0); NodeList n = s.getElementsByTagName("a");

Ele retorna null, ele só consegue retornar a frase quando naum existe o span, assim:

<dt><a href="/ticket/4337">#4337: Document Genshi version required for r4399 to work</a></dt>

Minha primeira dúvida é como faço para pegar a frase com o span, e como faço para dar as duas possibilidades: pegar a frase quando existe o span e quando naum existe

  1. A minha segunda dúvida é a seguinte, voltemos a primeira parte do código que eu quero pegar:
<dd>
     <span class="author">By [email removido]</span> &mdash;
     <span class="date">12/05/2006 04:39:15 AM</span>
</dd>

Eu quero pegar o nome do autor e a data, ambos dentro do dd e com cláusulas iguais “span”. Quando tento obter isso, ele apenas me retorna o primeiro span, no caso “author”. Como faço para pegar a data?

  1. A terceira dúvida é que eu estou escrevendo um código imenso para pegar essas informações, existe alguma maneira de eu “navegar” entre as tags, apontando quais são, tipo assim, algumObjeto.getMinhaInformacao("primeiraTag/segundaTag/terceiraTag");

Pessoal, depois dessas infinitas dúvidas,
Obrigado

P.s: Qualquer ajuda é bem vinda, até indicar algum site pra ler e coisa e tal, obrigado

Samuel

2 Respostas

B

Patterns podem fazer mágica por você.

Dê uma olhada nesse tópico: http://guj.com.br/posts/list/47055.java

felixcomputer

Sim sim, é isso que atualmente eu uso, estou utilizando expressões regulares para obter os dados da minha página, entretanto naum é a melhor maneira por que pode acontecer de pegar uma url mal formada e minha expressão regular falhar, utilizando o dom, eu tipo que “navego”. Mas obrigado pela sua ajuda,
Samuel

Criado 6 de dezembro de 2006
Ultima resposta 7 de dez. de 2006
Respostas 2
Participantes 2