我在使用 PHP 的 while 循环中生成的 XML 结构中遇到了问题,最好说是一个错误。
这是我用来访问我的数据库并使用检索到的信息生成 XML 的 PHP 代码(另外,我之前将内容类型定义为 text/xml):
<?php include("basededatos.php"); $query = mysql_query("SELECT tipo,nombre,direccion,telefono,dias_habiles,sabados,domingos,coordenadas FROM iglesias"); while($row = mysql_fetch_array($query)) : ?>
<iglesia cords="<?php echo $row["coordenadas"]; ?>" tipo="<?php echo utf8_encode($row["tipo"]); ?>">
<nombre><?php echo utf8_encode($row["nombre"]); ?></nombre>
<direccion><?php if($row["direccion"]==""){echo "Dirección no especificada";} else {echo utf8_encode($row["direccion"]);} ?></direccion>
<telefono><?php if($row["telefono"]==""){echo "Teléfono no especificado";} else {echo utf8_encode($row["telefono"]);} ?></telefono>
<horarios>
<dias_habiles><?php if($row["dias_habiles"]==""){echo "Sin información";} else {echo utf8_encode($row["dias_habiles"]);} ?></dias_habiles>
<sabados><?php if($row["sabados"]==""){echo "Sin información";} else {echo utf8_encode($row["sabados"]);} ?></sabados>
<domingos><?php if($row["domingos"]==""){echo "Sin información";} else {echo utf8_encode($row["domingos"]);} ?></domingos>
</horarios>
</iglesia>
好,现在,多亏了我获得了一个大的 XML,超过 2500 行,这要归功于我的数据库中有 255 行,但有时我只有一个标签有一个奇怪的错误,比如最后一个:
<iglesia cords="-34.59915445189461, -58.39169159531593" tipo="Parroquia">
<nombre>Parroquia Nuestra Señora del Carmen</nombre>
<direccion>Rodriguez Peña 840</direccion>
<telefono>011 4816 3511</telefono>
<horarios>
<dias_habiles>8:00, 11:30, 19:30</dias_habiles>
<sabados>8:00, 17:30, 19:00</sabados>
<domingos>8:30, 11:00, 12:15, 17:30, 19:00, 20:15</domingos>
</horarios>
</iglesia>
<iglesia cords="-34.595964052770476, -58.40230107307434" tipo="Parroquia">
<nombre>Parroquia Nuestra Señora del Carmelo</nombre>
<direccion>Marcelo T. de Alvear 2465</direccion>
<telefono>011 4821 5954</telefono>
<horarios>
//Look here, the next line
dias_habiles>8:00, 11:00, 19:00, 20:00</dias_habiles>
<sabados>8:00, 11:00, 19:00, 20:00</sabados>
<domingos>8:00, 10:00, 11:00, 12:00, 19:00, 20:00, 21:00</domingos>
</horarios>
</iglesia>
如您所见,在 dias_habiles 标记中缺少 <,但在此之前的 dias_habiles 是正确的,并且在该错误之后,所有 dias_habiles 都被很好地标记了。
此外,这个标签并不总是有问题,它只是一个例子,它可以在 XML 中与任何随机标签一起发生,只有一次并且没有传播。为什么?如何?