Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Talking Lectura y escritura de un XML

hola comunidad
Ante todo no se si el nombre de este hilo sea el mas correcto pero no se de que otra manera mas especifica llamarlo !!!
Sucede que trato de obtener los datos de este XML
Código:
<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
	<s:Schema id="RowsetSchema">
		<s:ElementType name="row" content="eltOnly">
			<s:AttributeType name="IdCargo" rs:number="1" rs:maydefer="true" rs:writeunknown="true">
				<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true"/>
			</s:AttributeType>
			<s:AttributeType name="Cargo" rs:number="2" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true">
				<s:datatype dt:type="string" dt:maxLength="50"/>
			</s:AttributeType>
			<s:extends type="rs:rowbase"/>
		</s:ElementType>
	</s:Schema>
	<rs:data>
		<z:row IdCargo="1" Cargo="Cargo 1"/>
		<z:row IdCargo="2" Cargo="Cargo 2"/>
		<z:row IdCargo="3" Cargo="Cargo 3"/>
		<z:row IdCargo="4" Cargo="Cargo 4"/>
		<z:row IdCargo="5" Cargo="Cargo 5"/>
	</rs:data>
</xml>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Al principio trate de usar el TXMLDocument pero ni modo de que pueda leer los nodos asi que decidi usar el TXMLTransformProvider con un TClientDataSet y de esa forma poder usar el xml como si fuera una base de datos comun y corriente. Pues hasta ahi la idea es genial, , donde se pone dificil es en llevarla a la practica .
Sucede que no se como crear el .XTR que el XMLTransformProvider1->DataTransformRead y el XMLTransformProvider1->DataTransformWrite necesitan para realizar la lectura o escritura según sea el caso. Si alguien tiene alguna idea de como crear estos .XTR sera mas que bienvenida o si alguien puede indicarme como leer los nodos usando el TXMLDocument tambien sera bienvenida.
Gracias de antemano por su ayuda
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #2  
Antiguo 06-09-2012
Avatar de erickahr
erickahr erickahr is offline
Miembro
 
Registrado: feb 2010
Posts: 94
Poder: 15
erickahr Va por buen camino
Cool Saludos

Por lo que veo tu XML (y si no me equivoco ) puede ser leido con un ClientDataset sin problemas

Código Delphi [-]
Procedure AbreXML(Archivo: String);
begin
  ClientDataSet1.Close;
  ClientDataSet1.LoadFromFile(Archivo);
  ClientDataSet1.Open;  
end;

Y en un Button pones:

Código Delphi [-]
AbreXML('C:\tuarchivo.xml');

Si quieres guardar los cambios hechos puedes usar el siguiente codigo:

Código Delphi [-]
  ClientDataSet1.SaveToFile('C:\tuarchivomodificado.xml', dfXML);

Por otro lado, tambien podrias checar la documentacion del XMLMaper, aunque como te comento creo que no necesitaras mas que el ClientDataSet.
__________________
Nadie puede separar su fe de sus actos, o sus creencias de sus afanes
Responder Con Cita
  #3  
Antiguo 06-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por erickahr Ver Mensaje
Por lo que veo tu XML (y si no me equivoco ) puede ser leido con un ClientDataset sin problemas
Código:
---------------------------
Debugger Exception Notification
---------------------------
Project xml.exe raised exception class EDBClient with message 'Mismatch in datapacket.'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
Creo que no va a ser tan fácil jejeje aunque me hubiese encantado !!!!, parece que lo que tengo que mandarle es un DataPacket y no un XML de ahi la idea del Provider. Pero no se como crear el fichero de conversión ????????? Gracias de todas formas por la ayuda, si te surge alguna idea nueva con gusto la probaré
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #4  
Antiguo 06-09-2012
Avatar de erickahr
erickahr erickahr is offline
Miembro
 
Registrado: feb 2010
Posts: 94
Poder: 15
erickahr Va por buen camino
Duda

Una pregunta, con que programa se ha generado ese xml, porque efectivamente me mando el mismo error que a ti, pero al intentar crear un Binding del XML o pasarlo por el XML Mapper, me dio error (al parecer de parseo) con lo cual me daría a pensar que hay algo mal fisicamente con el XML.


Mira te este es un ejemplo de XML, que leo con el ClientDataSet tal como te lo sugerí.
Código:
<?xml version="1.0" standalone="yes"?>
<DATAPACKET Version="2.0">
  <METADATA>
    <FIELDS>
      <FIELD attrname="IDTRANSPORTE" fieldtype="i8" required="true">
        <PARAM Name="PROVFLAGS" Value="7" Type="i4" Roundtrip="True"/>
        <PARAM Name="ORIGIN" Value="&quot;TRANSPORTES&quot;.&quot;IDTRANSPORTE&quot;" Roundtrip="True"/>
      </FIELD>
      <FIELD attrname="TRANSPORTE" fieldtype="string.uni" WIDTH="140">
        <PARAM Name="ORIGIN" Value="&quot;TRANSPORTES&quot;.&quot;TRANSPORTE&quot;" Roundtrip="True"/>
      </FIELD>
    </FIELDS>
    <PARAMS PRIMARY_KEY="1"/>
  </METADATA>
  <ROWDATA>
    <ROW IDTRANSPORTE="1" TRANSPORTE="MULTIPACK"/>
    <ROW IDTRANSPORTE="2" TRANSPORTE="CASTORES"/>
    <ROW IDTRANSPORTE="3" TRANSPORTE="ODM"/>
    <ROW IDTRANSPORTE="4" TRANSPORTE="FLECHA AMARILLA"/>
  </ROWDATA>
</DATAPACKET>
Igual y viendo de donde viene ese XML podriamos darle una checada
__________________
Nadie puede separar su fe de sus actos, o sus creencias de sus afanes
Responder Con Cita
  #5  
Antiguo 06-09-2012
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
pues ese XML me lo mando el desarrollador de otro proyecto para el cual el mio debe tributar información, no se con que lo creo pero el desarrolla desde una versión de Basic o algo parecido de Microsoft, asi que supongo que el componente que utiliza es de ellos también.

Por otra parte usando el XMLDocument logre leerlo y llegar hasta el ultimo nodo de esta forma
Código:
Memo1->Lines->Add(XMLDocument1->Node->ChildNodes->Nodes[0]->ChildNodes->Nodes[1]->ChildNodes->GetCount());
Memo1->Lines->Add(XMLDocument1->Node->ChildNodes->Nodes[0]->ChildNodes->Nodes[1]->ChildNodes->Nodes[0]->GetNodeName());
Asi logro ver el nombre del ultimo nodo y la cantidad pero no logro ver los datos dentro de el, me dice que el nodo no tiene un valor unico de texto, lo que tiene logica porque tiene dos valores el ID y el Cargo. Ahora estoy tratando con una via y con la otra hehehe.
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #6  
Antiguo 14-10-2012
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Cita:
Empezado por lmpadron Ver Mensaje
...
Sucede que no se como crear el .XTR que el XMLTransformProvider1->DataTransformRead y el XMLTransformProvider1->DataTransformWrite necesitan para realizar la lectura o escritura según sea el caso. Si alguien tiene alguna idea de como crear estos .XTR sera mas que bienvenida ...
No tengo la respuesta, y por el contrario casi la misma pregunta. Ya que en este hilo se preguntaba por los .xtr, no sé si alguien nos pueda colaborar al menos con un ejemplo de estos archivos. Resulta que el XMP Mapper viene con la versión Enterprise de Delphi, y si no la tienes pues los archivos habría que crealos manualmente, lo cual sería fácil si pudiéramos ver uno de ejemplo.

Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
lectura y escritura en un archivo de texto torito Varios 4 18-01-2010 10:10:11
Escritura el_enigma1 Firebird e Interbase 8 13-05-2004 23:26:56
escritura el_enigma1 Firebird e Interbase 2 11-05-2004 10:34:47
Lectura Escritura de puertos daseretto Varios 4 19-04-2004 16:24:27
Ejemplo de Lectura/escritura en MS Excel Yarri Conexión con bases de datos 3 14-05-2003 16:06:44


La franja horaria es GMT +2. Ahora son las 12:07:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi