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.
<?xmlasd version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
hFile := FOpen( aFiles[ 1 ] )
oXmlDoc := TXmlDocument():New( hFile )
oXmlIter := TXmlIterator():New( oXmlDoc:oRoot )
oTagActual = oXmlIter:NEXT()
IF ( AllTrim( oTagActual:cName ) != 'xml' )
? "error"
...
goosfancito 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?
oFile:= TTxtFile():New( "archivo.xml" )
cLinea:=oFile:ReadLine()
If (At('xml',cLinea)>0
?"Es xml"
Else
?"No es xml"
Endif
oFile:End()
#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)
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
#include "hbxml.ch"
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Lailton and 49 guests