Read XML content

cancel
Showing results for 
Search instead for 
Did you mean: 
jpotts
Professional

Re: Read XML content

Tienes usar la jerarquía. Trata AccountingSupplierParty.AccountingContact.Name.

sandrainésvásqu
Member II

Re: Read XML content

Buena noche

Ya probé siguiendo la jerarquía que me indica pero queda nulo el valor, es decir, como si no "interpretara" un archivo tipo xml

Si quito del script la instrucción docString = docString.split("\n").slice(1).join("\n"), sale un error como 

 "[xX][mM][lL]" is not allowed.

Quedo pendiente de su valiosa ayuda.

Gracias

jpotts
Professional

Re: Read XML content

Aqui es la repuesta...

    var docuname = document.name;
    var mimetype = document.properties.content.mimetype;
    var docString = document.content;
    if (docString.startsWith("<?xml")) {
        docString = docString.split("\n").slice(1).join("\n");
    }

    var docXml = new XML(docString);
    var cbcNS = new Namespace("urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2");
    var feNS = new Namespace("http://www.dian.gov.co/contratos/facturaelectronica/v1");
    var cacNS = new Namespace("urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2");

    print("UBLVersionID:" + docXml.cbcNS::UBLVersionID);
    nuevoNombre = docXml.feNS::AccountingSupplierParty.cacNS::AccountingContact.cbcNS::Name;
    print("nuevoNombre:" + nuevoNombre);

Con tu XML ejemplo, este nos dar:

UBLVersionID:UBL 2.0

nuevoNombre:29707543

Es importante que eliminar el commentario XML de la primera linea.

Y tienes que declarar y usar namespaces (como se dice "namespaces" en espanol?)

Yo espero este ayudarte.

jpotts
Professional

Re: Read XML content

Y gracias por permitirme practicar mi espanol. Todavia estoy aprendiendo.

sandrainésvásqu
Member II

Re: Read XML content

Jeff, muchísimas gracias por tu valiosa colaboración

Probé la solución planteada y me funcionó perfectamente, pero ahora tengo el caso de un archivo xml con la misma jerarquía, nomspaces y no funcionó "creería no era reconocido como un archivo tipo xml", después de tanto revisar e contenido y demás del archivo, lo que hice fue copiar todo su contenido en otro archivo en sublime text como tipo xml y de esta forma logré el resultado; el problema es que la carga de esos archivos debe ser automática por lo que no podría estar haciendo un proceso manual de copiar el contenido en otro archivo.  Será que hay otra validación que debe tenerse en cuenta para este tipo de casos?... Te agradecería tus recomendaciones para este caso...

jpotts
Professional

Re: Read XML content

El nombre de archivo termina con la extension "xml"? Prodria intenta cambinar el nombre de el archivo.

Quizas un regla podria probar el nombre y lo cambia si no termina con "xml".

No estoy seguro.

sandrainésvásqu
Member II

Re: Read XML content

Hola buen día

Jeff muchas gracias por tu colaboración.  El archivo si tiene la extensión xml en el nombre, solo pasa con un archivo en especial, hice otra prueba donde pasaba los datos del archivo que cargaba a un txt y luego a un xml todo programada con javascript y a través de una regla ejecutando el script pero tampoco funciona.  Yo creo que el archivo ha de tener algo especial, porque si selecciono el texto en el editor sublime text y copio en un archivo nuevo lo defino como archivo tipo xml y lo grabo este archivo si lo carga, sin modificar nada del contenido.  Qué otra alternativa tengo? o de qué otra manera podría resolverlo por un script y otra opción?

Gracias