php - 第 1 行第 3 列的错误:xmlParsePI:没有目标名称
问题描述
我需要为我的在线商店的 cms、产品、图像和类别页面生成一个动态 xml。在这里,我向您展示我使用的 3 个文件。第一个是文件funciones.php:
<?php
function devolver_url ($v,$i,$tipo=1)
{
foreach ($v as $linea)
{
$b=explode ("#",$linea);
if ($b[1]==$i)
$retorno=$b[2];
}
return $retorno;
}
function devolver_url_productos ($v,$i)
{
foreach ($v as $linea)
{
$b=explode ("#",$linea);
if ($b[1]==$i)
$retorno=$b[2]."/".$b[4]."-".$b[3].".html";
}
return $retorno;
}
function consultar_bd($consulta)
{
$bd="XXXXXXX";
$clave="XXXXXXXXX";
$host="localhost:3306";
$conexion = mysql_connect($host, $user, $clave);
mysql_select_db($bd, $conexion);
$resultado = mysql_query($consulta, $conexion) or die(mysql_error());
return $resultado;
}
function quitar_tildes($cadena)
{
$no_permitidas= array ("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","À","Ã","Ì","Ò","Ù","Ù","à ","è","ì","ò","ù","ç","Ç","â","ê","î","ô","û","Â","Ê","ÃŽ","Ô","Û","ü","ö","Ö","ï","ä","«","Ò","Ã","Ä","Ë");
$permitidas= array ("a","e","i","o","u","A","E","I","O","U","n","N","A","E","I","O","U","a","e","i","o","u","c","C","a","e","i","o","u","A","E","I","O","U","u","o","O","i","a","e","U","I","A","E");
$texto = str_replace($no_permitidas, $permitidas ,$cadena);
return $texto;
}?>
文件funciones_cms.php:
<?php
include ("funciones.php");
function poner_url_cms ($v)
{
$dominio="https://www.mobiliariocomercialmaniquies.com/";
$l=array("nada","en","fr","es","de","it","ca");
foreach ($v as $a)
{
$b=explode ("#",$a);
echo '
<url>
<loc>'.$dominio.$l[$b[1]].'/content/'.$b[0].'-'.$b[2].'</loc>
';
for ($i=1;$i<7;$i++)
{
if ($i<>$b[1])
{
echo '<xhtml:link
rel="alternate"
';
echo 'hreflang="'.$l[$i].'"
';
echo 'href="'.$dominio.$l[$i].'/content/'.$b[0].'-'.devolver_url($v,$i,1).'"
/>';
}
}
echo '</url>
';
}
}
function generar_sitemap()
{
$consulta= "SELECT id_lang, id_cms,link_rewrite FROM ps_cms_lang";
$resultado = consultar_bd($consulta);
$filas = mysql_num_rows($resultado);
$cms=0;
if ($filas > 0)
{
while ($r= mysql_fetch_assoc($resultado))
{
if ( ($r['link_rewrite']<>"") && ($r['id_lang']<7) )
{
if ($r['id_cms']==$cms)
{
$v[]=$cms."#".$r['id_lang']."#".$r['link_rewrite'];
}
else
{
if ($cms==0)
{
unset($v);
$cms=$r['id_cms'];
$v[0]=$cms."#".$r['id_lang']."#".$r['link_rewrite'];
}
else
{
poner_url_cms($v);
unset($v);
$cms=$r['id_cms'];
$v[0]=$cms."#".$r['id_lang']."#".$r['link_rewrite'];
}
}
}
}
poner_url_cms($v);
}
}
?>
最后我需要制作文件 cms.xml 但它不起作用:
<?
header("Content-Type: text/xml;charset=iso-8859-1");
echo '<?xml version="1.0" encoding="UTF-8"?>';
include ("../funciones/funciones_cms.php");
include ("../funciones/funciones.php");
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<?php echo generar_sitemap() ?>
</urlset>
我需要为我的在线商店的 cms、产品、图像和类别页面生成一个动态 xml。请问你能帮帮我吗?
解决方案
- 网络服务器未将您的“cms.xml”解析为 PHP
- HTTP 客户端接收 PHP 源代码
- PHP 源不是有效的 XML
- 客户端中的 XML 解析器抛出错误
如果您命名文件cms.xml
,网络服务器将不会将其作为 PHP 执行(至少在没有特殊配置的情况下不会)。这意味着 PHP 源代码将被发送到 HTTP 客户端。这包括<?
在文件顶部启动您的 PHP 源代码。
<?
在 XML 中用于处理指令(短 PI),但它们需要一个目标名称,如<?xml-stylesheet ...?>
推荐阅读
- python - 我如何循环玩家回合,直到他们做出有效的选择?
- javascript - :Contains 不适用于变量而不仅仅是文本
- java - NavigationView 引发空对象引用异常
- java - 可以用逗号连接switch语句的两种情况吗
- python - 如何在odoov11中设置没有相关字段的默认值?
- kibana - Kibana KQL 搜索与时间范围一起保存
- python-3.x - TypeError:float() 参数必须是字符串或数字,而不是 'datetime.timedelta'
- sql - SQL Server 中 N 天的总和
- ios - 如何使用 Swift 以编程方式获取 AWS Amplify 身份验证配置?
- javascript - 如何打印树的所有节点数