Recebendo uma String de um WebServices e passando convertendo em XML

Ola Pessoal! Estou com um problema para trasformar uma String que recebo de um webservices em XML.

Minha Classe de Importação

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package br.com.pjwscotacao.Servico;

import br.com.pjwscotacao.DAO.Connectionfactory;
import br.com.pjwscotacao.DAO.CotacaoDAOImp;
import br.com.pjwscotacao.DAO.ItensCotacaoDAOImp;
import br.com.pjwscotacao.modelo.Cotacao;
import br.com.pjwscotacao.modelo.ItensCotacao;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
*

  • @author Vitor
    */
    public class CotacaoXmlDAOImp {

    public boolean CadastrarCotacaoXML(String arqXML) {

    // boolean retorno = false;
     Connectionfactory _conn = new Connectionfactory();
    
     try {
    
         //File fXmlFile = new File(arqXML);
         /*@SuppressWarnings("static-access")
         File fXmlFile = new File("\\XMLCotacao\\Cotacao.xml", arqXML);//createTempFile("XMLCotacao/Cotacao.xml");
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(fXmlFile);
         doc.getDocumentElement().normalize();*/
    
         File fXmlFile = new File(arqXML, "\\XMLCotacao\\Cotacao.xml");
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(fXmlFile);
         doc.getDocumentElement().normalize();
    
         //System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
         NodeList nList = doc.getElementsByTagName("TCotacao");
         //System.out.println("-----------------------");
    
         Node nNode = nList.item(0);
         Element eElement = (Element) nNode;
    
         Cotacao cotacao = new Cotacao();
         CotacaoDAOImp _Cdao = new CotacaoDAOImp();
    
         SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
         Date abertura = formato.parse(getTagValue("DataAbertura", eElement));
    
         //Iniciando a Tranzação
         _conn.IniciaTranzacao();
         System.out.println("***** Iniciando a Tranzação *******");
    
         int _IdEmpresa = Integer.parseInt(getTagValue("IdEmpresa", eElement));
         double _NCotacao = Double.parseDouble(getTagValue("IdCotacao", eElement));
    
         cotacao.getEmpresa().setIdempresa(_IdEmpresa);
         cotacao.setCot_data_abertura(abertura);
         cotacao.setCot_obs(getTagValue("Obs", eElement));
         cotacao.setCot_ncotacao(_NCotacao);
    
         _Cdao.cadastrar(cotacao);
    
         NodeList Itens = doc.getElementsByTagName("Itens");
    
         for (int temp = 0; temp < Itens.getLength(); temp++) {
    
             Node nNodeItens = Itens.item(temp);
    
             Element ieElement = (Element) nNodeItens;
    
             ItensCotacao icotacao = new ItensCotacao();
             ItensCotacaoDAOImp _ICDao = new ItensCotacaoDAOImp();
    
             icotacao.getCotacoes().setIdcotacoes(_NCotacao);
             icotacao.getEmpresa().setIdempresa(_IdEmpresa);
             icotacao.setIc_idproduto(getTagValue("IdProduto", ieElement));
             icotacao.setIc_nome_produto(getTagValue("NomeProduto", ieElement));
             icotacao.setIc_un_produto(getTagValue("UnProduto", ieElement));
             icotacao.setIc_qtd_solicitada(Double.parseDouble(getTagValue("QtdSolicitada", ieElement)));
    
             _ICDao.cadastrar(icotacao);
    
         }
    
         //retorno = true;
    
    
     } catch (Exception e) {
         //_conn.RollbackTranzacao();
         e.printStackTrace();
     }
    
     _conn.CommitTranzacao();
     return true;
    

    }

    /* private static String getTagValue(String sTag, Element eElement) {
    NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
    Node nValue = (Node) nlList.item(0);

     return nValue.getNodeValue();
    

    }*/

    private String getTagValue( String sTag, Element eElement ) throws Exception {
    NodeList children = eElement.getElementsByTagName( sTag );

     if( children == null ) return null;
         Element child = (Element) children.item(0);
     if( child == null ) return null;
     return child.getFirstChild().getNodeValue();
    

    }

}

No metodo do webservices ele chega como uma String assim:
cxml.CadastrarCotacaoXML(CotacaoXML);

A pessoal problema no XMl não é por que ele foi assinado pela W3C.

Se aguem puder dar uma ajuda.

Algum motivo em especial para estar escrevendo tudo isso na unha?

[]´s

Dentre várias bibliotecas para essa finalidade destaco o uso do Xstream.

Abs,

Acabei de usar xstream em projeto, e aconselho o uso dele é muito bom e facil de usar.
alem de ter um site com exemplos: http://xstream.codehaus.org/