Bibliotecas: EasyXML - Analizador de XML

 

EasyXML - Analizador de XML:

EasyXML es una Librería de Análisis nativa de MQL5 XML. Puede analizar XML de tres fuentes diferentes: URL, archivo y String de entrada.

Es orientado a objetos completados una se esfuerza para integrar neately con MQL5, como utiliza CObject y CArrayObj de la librería estándar de MQL5 para almacenar el DOM.

Autor: Paul van Hemmen

[Eliminado]  

Pude compilar y ejecutar el código en el primer intento en mi nueva MT5.

  1. ¡0 problemas wininet !
  2. Muy buen código

Gran aporte, gracias.

 

Gracias por la buena biblioteca,

cuando traté de pars mi documento de "File Input" método me sale este error :*** Carácter no válido encontrado. Debería ser el principio de una etiqueta abierta P:0 ***.

despues de un dolor de cabeza y de buscar por todo el mundo me di cuenta que la codificacion que acepta el parser es "UCS-2 LE BOM" por lo que era mejor mencionarlo en la descripcion,

¿hay alguna forma de cambiar esta codificación por defecto ya que mi XMl Writer utiliza "UTF-8-BOM"?

 

hola de nuevo, he encontrado una solución para mi caso puede que ayude a otros,:)

he cambiado una línea "CEasyXml::loadXmlFromFile(string pFilename)" función pertenece a EasyXML Clase :

 int hFile=FileOpen(pFilename,FILE_READ|FILE_ANSI,CP_UTF8); 

esto lee mi archivo correctamente con formato de codificación de "UTF-8-BOM".

pero aún necesita eliminar los caracteres "BOM "Bytes Of Orders="ï "¿" de la cadena con :

StringReplace(pText,"",""); 

 

Hola, estoy intentando obtener los datos de esta página: https://www.usda.gov/oce/commodity/wasde/latest.xml pero me da este error con el script example_inline_parsing: *** Invalid Character found. Should be the beginning of an open tag P:0 ***
Estoy sustituyendo la url original por la de arriba y el script no funciona.

¿Alguna idea?

Gracias

 

Hola, Paul.


Gracias por proporcionar una gran clase de utilidad.

Por cierto, ¿se puede hacer una copia profunda de un objeto CEasyXmlNode con el constructor de copia?

 

No funciona...

Más errores

sOutput += (ActualNode.getValue()) ? " Value: '" + ActualNode.getValue() + "'" : "";

Devuelve el tipo string ActualNode.getValue()...

 

Parece que hay un error en el uso de etiquetas de autocierre.


Así que en muchos editores xml, cuando hay una etiqueta vacía, la etiqueta se convierte automáticamente en una etiqueta de autocierre. Ej.

<element></element> 

se convierte en

<element/>  or  


<element />

automáticamente.

y de acuerdo con w3 elementos XML, es legal el uso de etiquetas de auto-cierre. Así que no estoy seguro de por qué no serían compatibles al importar documentos xml. Esperemos que @Liquinaut puede abordar esta cuestión.

Por suerte, en mi caso, la cantidad de etiquetas de autocierre es relativamente pequeña. Pero, ¿y si el documento tiene cientos o miles de etiquetas de este tipo? ¿se espera que los usuarios conviertan de algún modo estas etiquetas en etiquetas de apertura + cierre?


edit: Para aquellos que buscan convertir las etiquetas de auto-cierre en etiquetas separadas, es posible que desee utilizar este RegEx find/replace

Buscar: (<)(\w*)(.*)(/>)

Reemplazar: <$2$3></$2>

[Esto es con el motor regEx .NET usado en TextCrawler3. Otros motores podrían usar un formato diferente; experimente]. Conserva todos los atributos dentro de la etiqueta original, si los hay

XML Elements
XML Elements
  • www.w3schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
 

Hola estoy usando la libreria pero me da el error en easyxmlnode.mqh de puntero invalido en esta funcion:

CEasyXmlNode *CEasyXmlNode::createSibling(CEasyXmlNode *pSiblingNode)
  {
   pSiblingNode.Prev(GetPointer(this));
   GetPointer(this).Next(pSiblingNode);

   ParentNode.createChild(pSiblingNode);
   return ParentNode.LastChild();
  }

¿Sabes cómo puedo solucionar el error?

 
mappi1589 puntero invalido en esta funcion:

¿Sabes cómo puedo solucionar el error?

¿Cuál es su entrada XML?
 
a forex factory calendar xml, funciona casi siempre pero aleatoriamente muestra ese error. ¿Puedo hacer algo para evitar el error o ejecutar el código de nuevo si detecta ese error de nuevo?