¿Creo que tengo un error de sintaxis o algo así? Estoy seguro de que tiene algo que ver con xml o sintaxis. Todo parece estar en orden cuando miro el archivo. Este error está relacionado con el módulo de notificación de mago, ¿correcto? El problema es que no veo ningún código roto como: <! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // ES">
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Opening and ending tag mismatch: hr line 7 and body in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): </body></html> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Opening and ending tag mismatch: body line 4 and html in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Premature end of data in tag html line 2 in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SystemLiteral " or ' expected in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Opening and ending tag mismatch: hr line 7 and body in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): </body></html> in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): ^ in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Opening and ending tag mismatch: body line 4 and html in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:24+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Premature end of data in tag html line 2 in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
2017-11-16T23:12:34+00:00 ERR (3): Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Space required after the Public Identifier in /var/www/code/www.oop.com/releases/20171116222810/public_html/app/code/local/Magestore/Magenotification/Model/Magenotification.php on line 126
Esta es la línea 126 en Magenotification.php
try {
$xml = new SimpleXMLElement($data);
}
No me ayuda en absoluto.
Magenotification.php
class Magestore_Magenotification_Model_Magenotification extends Mage_Core_Model_Abstract
{
const XML_FREQUENCY_PATH = 'magenotification/general/frequency';
const XML_LAST_UPDATE_PATH = 'magenotification/general/last_update';
const XML_MAGESTORE_URL_PATH = 'magenotification/general/magestore_url';
public function _construct()
{
parent::_construct();
$this->_init('magenotification/magenotification');
}
public function checkUpdate()
{
$timestamp = Mage::getModel('core/date')->timestamp(time());
if (($this->getFrequency() + $this->getLastUpdate()) > $timestamp)
{
return $this;
}
$notificationXml = $this->getNotificationData();
$noticeData = array();
if ($notificationXml && $notificationXml->item)
{
foreach ($notificationXml->item as $item) {
$item_data = array(
'severity' => (int)$item->severity,
'date_added' => $this->getDate((string)$item->date_added),
'title' => (string)$item->title,
'description' => (string)$item->description,
'url' => (string)$item->url,
'added_date' => $this->getDate((string)$item->date_added),
'related_extensions' => strtolower($item->related_extensions)
);
if($this->allowGetFeed($item_data)){
$noticeData[] = $item_data;
}
}
if($noticeData)
{
$this->parse(array_reverse($noticeData));
$this->setLastUpdate();
}
}
return $this;
}
public function allowGetFeed($item)
{
if($item['related_extensions'] == null || $item['related_extensions'] == '0'){
return true;
}
$modules = Mage::getConfig()->getNode('modules')->children();
foreach ($modules as $moduleName => $moduleInfo) {
if ($moduleName==='Mage_Adminhtml') {
continue;
}
if ($moduleName==='Magestore_Magenotification') {
continue;
}
if(strpos('a'.$moduleName,'Magestore') == 0){
continue;
}
$extension_code = str_replace('Magestore_','',$moduleName);
$related_extensions = explode(',',$item['related_extensions']);
if(count($related_extensions)){
foreach($related_extensions as $related_extension){
if(strtolower($related_extension) == strtolower($extension_code)){
return true;
}
}
}
}
return false;
}
public function getLastUpdate()
{
$timestring = Mage::getStoreConfig(self::XML_LAST_UPDATE_PATH);
return strtotime($timestring);
}
public function setLastUpdate()
{
$config = Mage::getModel('core/config');
$timestamp = Mage::getModel('core/date')->timestamp(time());
$config ->saveConfig(self::XML_LAST_UPDATE_PATH,$timestamp);
$config->cleanCache();
}
public function getFrequency()
{
return Mage::getStoreConfig(self::XML_FREQUENCY_PATH) * 3600;
}
public function getMagestoreUrl()
{
$lastTimeNotice = strtotime($this->getLastNotice()->getAddedDate());
return Mage::getStoreConfig(self::XML_MAGESTORE_URL_PATH) .'/magenotification/service/getfeed3/lastupdatetime/'. $lastTimeNotice;
}
public function getNotificationData()
{
$curl = new Varien_Http_Adapter_Curl();
$curl->setConfig(array(
'timeout' => 2
));
$curl->write(Zend_Http_Client::GET, $this->getMagestoreUrl(), '1.0');
$data = $curl->read();
if ($data === false) {
return false;
}
$data = preg_split('/^\r?$/m', $data, 2);
$data = trim($data[1]);
$curl->close();
try {
$xml = new SimpleXMLElement($data);
}
catch (Exception $e) {
return false;
}
return $xml;
}
public function getNotificationXml()
{
try {
$data = $this->getNotificationData();
$xml = new SimpleXMLElement($data);
}
catch (Exception $e) {
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?>');
}
return $xml;
}
public function getDate($rssDate)
{
return gmdate('Y-m-d H:i:s', strtotime($rssDate));
}
public function parse($data)
{
if(count($data))
{
try{
foreach($data as $item)
{
if(!$this->is_existedUrl($item['url']) )
{
$this->setData($item)->save();
$this->setId(null);
}
}
} catch(Exception $e) {
Mage::getSingleton('core/session')->addError($e->getMessage());
}
}
}
public function is_existedUrl($url)
{
$collection = $this->getCollection()
->addFieldToFilter('url',(string)$url);
if($collection->getSize())
return true;
return false;
}
public function getLastNotice()
{
$item = $this->getCollection()
->setOrder('added_date','DESC')
->getFirstItem();
return $item;
}
}
Encontrado El documento se ha movido aquí. El servidor Apache / 2.4.10 (Debian) en www.magestore.com Port 80 String no se pudo analizar como XML
Encontrado El documento se ha movido aquí. El servidor Apache / 2.4.10 (Debian) en www.magestore.com Port 80 String no se pudo analizar como XML
Cuando hago clic aquí, aparece algo de xml y el mensaje a continuación, supongo que significa que hay algo mal con la etiqueta del canal:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<channel/>
Magenotification.php
?Respuestas:
Para cualquiera que pueda encontrar esto, a continuación se encuentra una solución 'rápida':
Actualiza esta línea:
A:
Parece que Magestore ha cambiado su URL de notificación, por lo que la actualización anterior debería solucionarse.
Creo que actualizar la extensión Magestore_Magenotification a la última versión es la solución recomendada. Sin embargo, esto funcionará si desea detener el system.log que está lleno de este error.
fuente
Obviamente, algo está mal con el archivo XML que está tratando de analizar.
¿Podría cambiar el siguiente código?
a:
¿Y publicar los resultados aquí? Debería imprimir los datos XML que está tratando de analizar y su mensaje de error, estoy seguro de que muestra algo útil.
fuente
Vi que 3 te notificaron.
Eso significa que su Url devuelve una cadena HTML en lugar de una cadena XML. ¿ Puede depurar eso e imprimir la respuesta HTML ? Creo que su controlador estaba equivocado, no SimpleXMLElement
Actualizado
Déjame explicarte más
$ this-> getMagestoreUrl () <== Esta es su solicitud de URL (muéstrela).
$ datos = $ curl-> read (); Este es su texto de respuesta del controlador (var_dump o print_r) estos datos.
fuente