Javascript e xml

PRodrigues

Power Member
Alo viva,

Tou a fazer um site onde numa das paginas tenho um conteudo dinamico. Para isso uso um ficheiro javascript e um ficheiro xml.

O problema é que não consigo por o ficheiro xml com links para imagens, ou melhor, a pagina não carrega a imagem. A nivel de texto corre tudo bem mas as imagens não carregam para a pagina.

Aqui vão os ficheiros:

FICHEIRO JS:

function carregarConteudo(elemento_pai, pagina) {

document.getElementById(elemento_pai).innerHTML = ""; // Efetua a limpeza da Tag que contêm o id conteudo

documentoXml = carregarDococumentoXml(pagina+".xml"); // Chama uma função para carregar o documento XML

elementoXml = documentoXml.getElementsByTagName("texto"); // Seleciona todas as tags texto dentro do documento XML

for (i=0;i<elementoXml.length;i++){ // faz um loop contando a quantidade de elementos tag texto dentro do arquivo XML

local_exibir = document.getElementById(elemento_pai); // variavel - captura a tag com id conteudo
elemento_div = document.createElement("DIV"); // cria uma tag div
elemento_div.style.padding="5px 10px 5px 10px"; // aplica um estilo para a div criada acima padding: ;
var informacoes = elementoXml.childNodes[0].nodeValue; // captura os valores dentros das tags visitadas pelo loop
elemento_texto = document.createTextNode(informacoes); // cria um nó de valores

elemento_div.appendChild(elemento_texto); // aplica o nó de valores dentro do nó div
local_exibir.appendChild(elemento_div); // aplica o nó div dentro no nó conteudo que está na página html

} // fim do loop
}
function carregarDococumentoXml(pagina){

if(window.ActiveXObject){ // verifica qual browser o usuario esta usando
documentoXml = new ActiveXObject("Microsoft.XMLDOM"); // Internet Explorer
} else {
documentoXml = document.implementation.createDocument("","",null); // Mozilla, Safari...
}

documentoXml.async = false;
documentoXml.load(pagina); // carrega a página enviada como parametro
return(documentoXml); // retorna o documento XML carregado
}
__________________________________________
FICHEIRO XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<assuntos>
<assunto>
<texto>
<fotos fp="equipe.jpg"/>
</texto>
<texto>
TESTE </texto>
<texto>
TESTE </texto>
</assunto>
</assuntos>



CORPO HTML:


<div id="menu" class="menu">
<ul>
<li><a href="#" onclick="carregarConteudo('conteudo', 'esportes')">
Quem Somos</a></li>
</ul>

<ul>
<li>
<a href="#" onclick="carregarConteudo('conteudo', 'noticias')">
Missão, Valores e Visão</a></li>
</ul>
<ul>
<li>
<a href="#" onclick="carregarConteudo('conteudo', 'entretenimento')">
Certificações</a></li>
</ul>
</div>


(aqui trata-se de um menu e está tudo a funcionar bem! Quando clico em certificações, carrega a parte de texto contido no file xml mas as imagens não)




Penso que expliquei qual o meu problema.

Preciso que não só os textos mas também as imagens sejam carregadas apartir do ficheiro xml.

Alguem pode ajudar-me?


Obrigada!
 
Alo viva,

Tou a fazer um site onde numa das paginas tenho um conteudo dinamico. Para isso uso um ficheiro javascript e um ficheiro xml.

O problema é que não consigo por o ficheiro xml com links para imagens, ou melhor, a pagina não carrega a imagem. A nivel de texto corre tudo bem mas as imagens não carregam para a pagina.

Aqui vão os ficheiros:

Penso que expliquei qual o meu problema.

Preciso que não só os textos mas também as imagens sejam carregadas apartir do ficheiro xml.

Alguem pode ajudar-me?


Obrigada!


onde chamas tu o fotos, no javascript?? E onde crias o div que leva a imagem??
 
Bom.. para já só estás mesmo só a mostrar o conteúdo.

A tua imagem deve estar aqui -> elementoXml.childNodes[0].attributes[0]

Código:
var img_node = document.createElement("img");
img_node.setAttribute("src",elementoXml[i].childNodes[0].attributes[0]);
 
O problema é que, confesso, não tenho muita experiencia com javascript e então andei a ler umas coisas sobre ajax e vi alguns scripts e isto foi o consegui fazer, tirando idéias de um lado e de outro.

Eu calculo que o problema é não chamar uma tag do genero da <img> com o link para a imagem que preciso.

Se calhar tenho de alterar as funçoes ou incluir um outro parametro na função de carregar conteudo...

Não sei bem de que maneira fazer, e pensei em por aqui o post para ver se alguem já tem experiencia com conteudos dinamicos com ajax e xml.
 
Bom.. para já só estás mesmo só a mostrar o conteúdo.

A tua imagem deve estar aqui -> elementoXml.childNodes[0].attributes[0]

Código:
var img_node = document.createElement("img");
img_node.setAttribute("src",elementoXml[i].childNodes[0].attributes[0]);


Queres dizer que devo por este codigo nas funçoes é isso?
 
Bom.. para já só estás mesmo só a mostrar o conteúdo.

A tua imagem deve estar aqui -> elementoXml.childNodes[0].attributes[0]

Código:
var img_node = document.createElement("img");
img_node.setAttribute("src",elementoXml[i].childNodes[0].attributes[0]);


só um pequeno reparo. em vez de usares childNodes[0], podes simplesmente usar FirstChild
 
Back
Topo