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: 42268
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Como detecto si un archivo es del tipo XML?
Puedes comprobar si tiene _ al comienzo "<xml"
- 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: 42268
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- 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?
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.
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
[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com
[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
- 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
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