Como detecto si un archivo es del tipo XML?
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Como detecto si un archivo es del tipo XML?
Hola.
Quiero detectar si el archivo que me está intentando cargar un cliente es un XML, como puedo hacerlo (sin solamente ver si la extension es .xlm)?
gracias.
Quiero detectar si el archivo que me está intentando cargar un cliente es un XML, como puedo hacerlo (sin solamente ver si la extension es .xlm)?
gracias.
- Antonio Linares
- Site Admin
- Posts: 42393
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 9 times
- Been thanked: 41 times
- Contact:
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como detecto si un archivo es del tipo XML?
intento hacer esta comprobación y nunca me lo detecta bien, o sea, nunca me muestra el cartel de ERROR
este es el contenido (modificado al propósito por mi)
este es el contenido (modificado al propósito por mi)
<?xmlasd version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
Code: Select all | Expand
hFile := FOpen( aFiles[ 1 ] )
oXmlDoc := TXmlDocument():New( hFile )
oXmlIter := TXmlIterator():New( oXmlDoc:oRoot )
oTagActual = oXmlIter:NEXT()
IF ( AllTrim( oTagActual:cName ) != 'xml' )
? "error"
...
- Antonio Linares
- Site Admin
- Posts: 42393
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 9 times
- Been thanked: 41 times
- Contact:
Re: Como detecto si un archivo es del tipo XML?
Que te hace suponer que oTagActual:cName vale 'xml' ?
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como detecto si un archivo es del tipo XML?
no entiendo la pregunta, pero cuando hice un fwdbg de ese tag me muestra que es un 'C' y que el valor es 'xml', a eso te referis?
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como detecto si un archivo es del tipo XML?
https://i.postimg.cc/pVDKY20W/Captura.pnggoosfancito wrote:no entiendo la pregunta, pero cuando hice un fwdbg de ese tag me muestra que es un 'C' y que el valor es 'xml', a eso te referis?
- Armando
- Posts: 3259
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 1 time
- Contact:
Re: Como detecto si un archivo es del tipo XML?
Goosfancito:
No te vale la extensión?
Saludos
No te vale la extensión?
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Como detecto si un archivo es del tipo XML?
Goosfancito:
Intenta asi:
Intenta asi:
Code: Select all | Expand
oFile:= TTxtFile():New( "archivo.xml" )
cLinea:=oFile:ReadLine()
If (At('xml',cLinea)>0
?"Es xml"
Else
?"No es xml"
Endif
oFile:End()
Saludos,
Adhemar C.
Adhemar C.
- leandro
- Posts: 1719
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 11 times
- Been thanked: 3 times
- Contact:
Re: Como detecto si un archivo es del tipo XML?
Creo que esto te puede servir, es un aporte de nuestro colega Carlos Gallego
https://forums.fivetechsupport.com/view ... 9f#p254367
https://forums.fivetechsupport.com/view ... 9f#p254367
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
Local oNode
Local cRuta := "xml2.xml"
Local cPath := "xml"
oNode := SearchPathXml( cRuta , cPath )
if valtype(oNode)!="U"
msginfo("xml correcto")
else
msginfo("xml no valido")
endif
return nil
******************************************
*BUSCA LOS DATOS EN NODO EN ESPECIFICO XML
*APORTE EN EL FORO DE FW
******************************************
Function SearchPathXml( cFileName , cPath )
Local oDoc, oNode, aNodes
Local cPath2 := "/" + StrTran( cPath , " -> " , "/" )
aNodes := HB_ATokens(cPath , " -> ")
oDoc := TXmlDocument():New( cFileName )
oNode := oDoc:CurNode
oNode := oDoc:FindFirst( ATAIL(aNodes) )
DO WHILE oNode != NIL
if HB_ISOBJECT(oNode)
if oNode:Path() == cPath2
exit
endif
else
exit
endif
oNode := oDoc:FindNext()
ENDDO
Return(oNode)
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Como detecto si un archivo es del tipo XML?
Gracias,
En mi caso la linea que llama a curNode me da error
En mi caso la linea que llama a curNode me da error
Compiler version: Harbour 3.2.0dev (r2104281802)
FiveWin version: FWH 21.11
C compiler version: Borland/Embarcadero C++ 7.6 (32-bit)
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 10/11/2023, 06:24:00
Error description: Error BASE/1004 Message not found: TXMLDOCUMENT:CURNODE
Args:
[ 1] = O TXMLDOCUMENT
- karinha
- Posts: 7910
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Como detecto si un archivo es del tipo XML?
Code: Select all | Expand
#include "hbxml.ch"
https://github.com/FiveTechSoft/xHarbou ... l/txml.prg
https://sourceforge.net/p/xharbour/mail ... /25746210/
Salud2
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341