Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos. Estou terminando um trabalho da faculdade sobre php e xml. Emperrei em um ponto e não consigo sair de jeito nenhum.
A situação é a seguinte: Quando o arquivo "geraxml2.php" é executado, o browser exibe o seguinte:
<Cadastro>
<cliente>
<idcliente dtcadastro="2012-09-29">30</idcliente>
<nmcliente dtnascimento="2005-01-13">Isabelly c</nmcliente>
<dcendereco>hj</dcendereco>
<enestadocivil valor="S">S</enestadocivil>
<ensexo valor="F">F</ensexo>
<txcomentario>hjk mn</txcomentario>
<hoobies>
<idhoobies>21</idhoobies>
<nmhoobies>Esporte</nmhoobies>
</hoobies>
</cliente>
</Cadastro>
O meu problema é que nas linhas:
<enestadocivil valor="S">S</enestadocivil>
<ensexo valor="F">F</ensexo>
Eu preciso do seguinte resultado:
<enestadocivil valor="S">Solteiro</enestadocivil>
<ensexo valor="F">Feminino</ensexo>
Abaixo segue o código do arquivo "geraxml2.php" que é o responsável por gerar esse XML:
<?
$conn = @mysql_connect("localhost", "root","")
or die("ERRO NA CONEXÃO");
//SELECIONA A BASE DE DADOS A SER UTILIZADA
$db = @mysql_select_db("ad2", $conn)
or die("ERRO NA SELEÇÃO DA BASE DE DADOS");
$dados = mysql_query("SELECT * FROM cliente") or die("Erro ao selecionar dados do cliente" . mysql_error() );
if(mysql_num_rows($dados) > 0)
{
$dom = new DOMDocument("1.0", "UTF-8");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
//criando o nó principal (root)
$root = $dom->createElement("Cadastro");
while( $reg = mysql_fetch_assoc($dados) )
{
//cria os elementos
$cliente = $dom->createElement("cliente");
$idcliente = $dom->createElement("idcliente", $reg['idcliente']);
$nmcliente = $dom->createElement("nmcliente", $reg['nmcliente']);
$dcendereco = $dom->createElement("dcendereco", $reg['dcendereco']);
$enestadocivil = $dom->createElement("enestadocivil", $reg['enestadocivil']);
$ensexo = $dom->createElement("ensexo", $reg['ensexo']);
$txcomentario = $dom->createElement("txcomentario", $reg['txcomentario']);
$hoobies = $dom->createElement("hoobies");
//adiciona os nós no cliente
$cliente->appendChild($idcliente)->setAttribute('dtcadastro', $reg['dtcadastro']);
$cliente->appendChild($nmcliente)->setAttribute('dtnascimento', $reg['dtnascimento']);
$cliente->appendChild($dcendereco);
$cliente->appendChild($enestadocivil)->setAttribute('valor', $reg['enestadocivil']);
$cliente->appendChild($ensexo)->setAttribute('valor', $reg['ensexo']);
$cliente->appendChild($txcomentario);
$hoobies = $cliente->appendChild($hoobies);
//hobbies
$query_hobbies = "SELECT hoobies.*
FROM hoobies
WHERE hoobies.idhoobies
IN(SELECT hoobies_cliente.idhoobies
FROM hoobies_cliente
WHERE hoobies_cliente.idcliente = " . $reg['idcliente'] . ")
GROUP BY hoobies.idhoobies";
$rs_hobbies = mysql_query($query_hobbies) or die('Erro na consulta aos hobbies' . mysql_error() );
if( mysql_num_rows($rs_hobbies) > 0)
{
while( $reg = mysql_fetch_assoc($rs_hobbies) )
{
$hoob = $dom->createElement("idhoobies", $reg['idhoobies']);
$hoobies->appendChild($hoob);
$hoob = $dom->createElement("nmhoobies", $reg['nmhoobies']);
$hoobies->appendChild($hoob);
}
}
$root->appendChild($cliente);
}
//adiciona o nó contato na raiz
$dom->appendChild($root);
//cabeçalho da página
header("Content-Type: text/xml");
//exibe xml
echo $dom->saveXML();
}
?>
Por favor alguém me ajude a conseguir o resultado correto.
Obrigado.
Carregando comentários...