Buenas, sigo con el problema, llevo ya días peleándome y nadie me ha contestado. Quizás no me expliqué bien. Lo intentaré de nuevo.
Tengo un fichero xml con la siguiente estructura:
Código XML:
Ver original<_UN>
<Registro>
<campo1>111</campo1>
<campo2>222</campo2>
<campo3>333</campo3>
<campo4>444</campo4>
<campo5>555</campo5>
<campo6>666</campo6>
<campo7>777</campo7>
<campo8>888</campo8>
<campo9>999</campo9>
</Registro>
<Registro>
<campo1>aaa</campo1>
<campo2>bbb</campo2>
<campo3>ccc</campo3>
<campo4>ccc</campo4>
<campo5>eee</campo5>
<campo6>fff</campo6>
<campo7>ggg</campo7>
<campo8>hhh</campo8>
<campo9>iii</campo9>
</Registro>
<_UN>
Y por cada campo[] tengo que insertar un registro en una tabla. Actualmente lo estoy haciendo de esta manera:
Código PHP:
Ver original$xml_file = 'fichero.xml';
foreach ($xml->Registro as $Registro) {
if ($Registro->campo1 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo1)."')"; }
if ($Registro->campo2 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo2)."')"; }
if ($Registro->campo3 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo3)."')"; }
if ($Registro->campo4 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo4)."')"; }
if ($Registro->campo5 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo5)."')"; }
if ($Registro->campo6 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo6)."')"; }
if ($Registro->campo7 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo7)."')"; }
if ($Registro->campo8 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo8)."')"; }
if ($Registro->campo9 != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo9)."')"; }
}
}
Lo que quiero es hacer un bucle para reducir el código, pero no encuentro la manera de hacer variable el nombre del campo del fichero xml. Es decir, busco un código similar al siguiente, pero que funcione ($campo = $("Registro->campo" + $i) no es correcto:
Código PHP:
Ver originalfor ($i=1; $i<=9; $i++) {
$campo = $("Registro->campo" + $i);
if ($campo != "") {
$qry = "INSERT INTO tabla (campo) VALUES ('".addslashes($campo)."')"; }
}
Alguien me echa un cable? Gracias