67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
FUNCTION getxmldata(filexml)
|
|
DEFINE i, l INTEGER
|
|
DEFINE r om.XmlReader
|
|
DEFINE e,tok,filexml,tipoecf,rnc_e,e_ncf,rnc_c STRING,
|
|
pfechafirmadigital VARCHAR(50)
|
|
|
|
DEFINE a om.SaxAttributes
|
|
|
|
DISPLAY "filexml: ",filexml
|
|
LET r = om.XmlReader.createFileReader(filexml)
|
|
LET l = 0
|
|
LET e = r.read()
|
|
|
|
WHILE e IS NOT NULL
|
|
CASE e
|
|
WHEN "StartDocument"
|
|
# DISPLAY "StartDocument:"
|
|
WHEN "StartElement"
|
|
LET l=l+1
|
|
#DISPLAY l SPACES, "StartElement:", r.getTagName()
|
|
LET a = r.getAttributes()
|
|
FOR i=1 to a.getLength()
|
|
IF a.getName(i) = "SignatureValue" THEN
|
|
# DISPLAY l SPACES," ",
|
|
# a.getName(i)," = ",
|
|
# a.getValueByIndex(i)
|
|
END IF
|
|
END FOR
|
|
WHEN "Characters"
|
|
|
|
|
|
IF r.getTagName() = "TipoeCF" THEN
|
|
LET tipoecf = r.getCharacters()
|
|
EXIT CASE
|
|
END IF
|
|
IF r.getTagName() = "FechaHoraFirma" THEN
|
|
LET pfechafirmadigital = r.getCharacters()
|
|
EXIT CASE
|
|
END IF
|
|
IF r.getTagName() = "RNCEmisor" THEN
|
|
LET rnc_e = r.getCharacters()
|
|
EXIT CASE
|
|
END IF
|
|
IF r.getTagName() = "eNCF" THEN
|
|
LET e_ncf = r.getCharacters()
|
|
EXIT CASE
|
|
END IF
|
|
IF r.getTagName() = "RNCComprador" THEN
|
|
LET rnc_c = r.getCharacters()
|
|
EXIT CASE
|
|
END IF
|
|
|
|
WHEN "SkippedEntity"
|
|
# DISPLAY "Entity:'",r.skippedEntity(),"'"
|
|
WHEN "EndElement"
|
|
# DISPLAY l SPACES, "EndElement:", r.getTagName()
|
|
LET l=l-1
|
|
WHEN "EndDocument"
|
|
# DISPLAY "EndDocument:"
|
|
OTHERWISE
|
|
# DISPLAY "Invalid event: ",e
|
|
END CASE
|
|
LET e=r.read()
|
|
END WHILE
|
|
RETURN tipoecf,pfechafirmadigital,rnc_e,e_ncf,rnc_c
|
|
END FUNCTION
|