Eu preciso pegar um XML que estou passando para uma página JSP de ação pelo método POST. Só que eu não consigo pegar este XML na minha página. Alguem sabe como posso fazer isso?
Vou passar o código que estou fazendo para passar o XML:
function Salvar()
{
var index = 0;
softwareselecionados = softwareselecionados.substring(0,softwareselecionados.length - 1);
var listasoftwares = softwareselecionados.split(";");
var SoftwareVersao;
var Registro;
var ObjDom;
var xsltProcessor = new XSLTProcessor();
var myDOM;
var xmlDoc;
var myXMLHTTPRequest = new XMLHttpRequest();
var Valido = validar_campos();
var DomXML;
if (!Valido)
{
return false;
}
DomXML = document.getElementById("SalvarXML");
Registro = document.createElement("REGISTRO");
Registro.setAttribute("IDUSUARIO",ID_Usuario);
Registro.setAttribute("NRRAMAL",document.Formulario.NRRamal.value);
Registro.setAttribute("DTEMPRESTIMO", document.Formulario.DTEmprestimo.value);
DomXML.appendChild(Registro);
for(index = 0; index < listasoftwares.length; index++)
{
SoftwareVersao = listasoftwares[index].split(",");
Softwares = document.createElement("SOFTWARE");
Softwares.setAttribute("IDLINHA",index+1);
Softwares.setAttribute("CDSOFTWARE",SoftwareVersao[0]);
Softwares.setAttribute("CDVERSAO",SoftwareVersao[1]);
Registro.appendChild(Softwares);
}
myXMLHTTPRequest.open("POST","softwaresemprestimocadastrarXML.jsp",false);
myXMLHTTPRequest.send(document.getElementById("SalvarXML").innerHTML);
xmlDoc = myXMLHTTPRequest.responseXML;
alert(myXMLHTTPRequest.responseXML);
}
Este é o código da função JavaScript que estou chamando a minha página de ação JSP. A minha página chama softwaresemprestimocadastrarXML.jsp e gostaria de saber como pegar este XML que eu estou enviando para esta página?
Antecipadamente muito obrigado pela ajuda!!!
[color=“green”][size=“7”]* Editado para adicionar o bbcode ;)[/size][/color]
por string eu já passei e aí funciona. Aí no arquivo JSP eu transformo este arquivo texto em um arquivo XML, mas eu procuro alguma forma de passar este arquivo sem ser por string. Deve existir alguma forma de pegar este arquivo do outro lado. Como em Asp.
Ae Eurimar, ainda naum entendi muito bem. Vc ta criando esse XML onde?! E pq precisa passar por post!? Explica pra gente o q a sua aplicaçao deve fazer, talvez assim fica mais facil pra visualizarmos…
Eu tenho uma função no javascript q é a função q eu postei no começo. Esta função faz o seguinte:
Ela gera um arquivo XML na memória com os valores dos campos do meu form.
Por que estou fazendo isso?
É o seguinte eu tenho q continuar na tela e não quero fazer um refresh desta tela. Então qdo o cara clicar no botão salvar eu vou pegar todos os valores dos campos e vou colocar em um XML e vou enviar este XML para uma página q vai processar este XML e inserir os dados dele no banco de dados. Eu quero saber como q eu faço para pegar este XML q está na memória nesta página minha q precisa processar este arquivo.
Por exemplo, em ASP eu vou criar um document do outro lado e vou fazer o seguinte:
vc ja pensou em colcoar o seu XML (ele eh um DOM ?!) na sessao?! Dai vc chama a proxima pagina e ela pega o xml da sessao (claro, vc vai ter q fazer um CAST)
se eu entendi bem o seu problema, creio q essa solucao de certo
É o seguinte, este código que eu coloquei na página funciona.
O q eu tô querendo saber é como pegar este arquivo XML q eu estou mandando do outro lado.
EXemplo:
Eu já tentei
Document d = request.getParameter(“XML”);
Tb tentei
Document d = request.getParameter(request);
e tb tentei
String d = request.getParameter(“XML”);
SaxBuilder x = new SAxBuilder()
Document Doc = sb.build(d);
neste último eu peguei o que eu passei como string, mas eu não tô dando conta de converter esta String para um XML.
function Salvar()
{
var index = 0;
softwareselecionados = softwareselecionados.substring(0,softwareselecionados.length - 1);
var listasoftwares = softwareselecionados.split(";");
var SoftwareVersao;
var Registro;
var ObjDom;
var xsltProcessor = new XSLTProcessor();
var myDOM;
var xmlDoc;
var myXMLHTTPRequest = new XMLHttpRequest();
var Valido = validar_campos();
var DomXML;
euromar, eh impressao minha ou vc ta criando o xml em JavaScript!!! Se for, esquece, naum da pra enviar, a menos q vc envie um string e depois parseie do outro lado, nem assim acho q da…
aconselho a vc q crie o xml usando a JSTL (biblioteca de tags padrao para JSP) dai sim vc consegue enviar facil o xml
resolvi o problema e vou passar o código para vc ver, caso vc precise usar para resolver algum problema.
function Salvar()
{
var index = 0;
softwareselecionados = softwareselecionados.substring(0,softwareselecionados.length - 1);
var listasoftwares = softwareselecionados.split(";");
var SoftwareVersao;
var Registro;
var ObjDom;
var xsltProcessor = new XSLTProcessor();
var myDOM;
var xmlDoc;
var myXMLHTTPRequest = new XMLHttpRequest();
var Valido = validar_campos();
var DomXML;
<%
Document jdomDoc = new Document();
StringReader SR = new StringReader(request.getParameter(“SalvarXML”));
SAXBuilder sb = new SAXBuilder();
jdomDoc = sb.build(SR);
emprestimo Inserir = new emprestimo();
String Resposta = Inserir.Inserir_Emprestimo(jdomDoc);
Element ElementoRoot = new Element(“SESS”);
Element Retorno = new Element(“retorno”);
Retorno.setAttribute(“resposta”,Resposta);
ElementoRoot.addContent(Retorno);
XMLOutputter gerar = new XMLOutputter();
gerar.output(ElementoRoot,out);
%>
Muito obrigado por toda a ajuda q vc me deu.
Valeu!!!