FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error usando ClientDataSet y XMLTransformProvider - ...must have a top level element
Saludos
Tengo un pequeño proyecto donde necesito poder manejar la información almacenada en un XML, escribi un sencillo código para ello usando el XMLDocument y funcionó perfecto, pero sucede que tengo que manejar la inserción y modificación de la información del XML. Por esa razón decidi buscar otro componente que también me permitiera manejar el XML y que de paso manejara la inserción y modificación por mi. Para ello me encontré a ClientDataSet quien necesita un XMLTransformProvider y de paso puedo asignarle al DataSource un DBNavigator. Hasta ahi todo esta bien, cargo el XML en el XMLTransformProvider los problemas comienzan cuando activo el ClientDataSet, este siempre me devuelve el siguiente error Código:
--------------------------- Error --------------------------- XML Parse Error: Reason: XML document must have a top level element. --------------------------- OK --------------------------- XML Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE proyecto [ <!ELEMENT proyecto (trabajador)> <!ELEMENT trabajador (nombre,empresa,cargo,edad)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT empresa (#PCDATA)> <!ELEMENT cargo (#PCDATA)> <!ELEMENT edad (#PCDATA)> ]> <proyecto> <trabajador exchange ="1"> <nombre>Luis M</nombre> <empresa>ESPECH</empresa> <cargo>Programador Frustrado</cargo> <edad>26</edad> </trabajador> <trabajador exchange ="2"> <nombre>Wilber</nombre> <empresa>ESPCH</empresa> <cargo>jefe de asuntos sin importacia</cargo> <edad>28</edad> </trabajador> <trabajador exchange ="3"> <nombre>Paul</nombre> <empresa>ESPCH</empresa> <cargo>Secretario del de arriba</cargo> <edad>27</edad> </trabajador> </proyecto> Código usado para el manejo del XML desde el XMLDocument Código:
OpenDialog1->Filter = "Lenguaje de Marca Extensible (*.xml)|*.XML"; if (OpenDialog1->Execute()) { if (OpenDialog1->FileName != "") { if (StringGrid1->RowCount != 0) { for (int a = 0; a < StringGrid1->RowCount + 1; a++) { StringGrid1->Rows[a]->Clear(); } } XMLDocument1->FileName = OpenDialog1->FileName; XMLDocument1->Active = true; int j = 0; _di_IXMLNode Main_Node = XMLDocument1->DocumentElement->ChildNodes->GetNode(j); StringGrid1->ColCount = Main_Node->ChildNodes->Count; StringGrid1->RowCount = XMLDocument1->DocumentElement->ChildNodes->GetCount() + 1; for (int k = 0; k < Main_Node->ChildNodes->Count; k++) { StringGrid1->Rows[k,0]->Add(Main_Node->ChildNodes->Nodes[k]->NodeName); } while (j < XMLDocument1->DocumentElement->ChildNodes->GetCount()) { Main_Node = XMLDocument1->DocumentElement->ChildNodes->GetNode(j); for (int i = 0; i < Main_Node->ChildNodes->Count; i++) { StringGrid1->Rows[i + 1,j + 1]->Add(Main_Node->ChildNodes->Nodes[i]->NodeValue); } j++; } } }
__________________
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_ ________________________________________________________________________________ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como saber numero de registros de una tabla usando un clientdataset? | acl_gandalf | Conexión con bases de datos | 11 | 26-06-2023 19:09:19 |
Error catastrófico con XMLTransformProvider y ClientDataset | victortera | Providers | 3 | 18-03-2014 16:52:25 |
Crear tabla temporal usando ClientDataSet | oscarac | OOP | 10 | 20-05-2011 09:36:24 |
Persistir XML con XMLTransformProvider | bataola | Providers | 0 | 26-07-2007 18:44:39 |
(dbase) al crear indices tira el error: 'table level changed' | orfeo | Tablas planas | 0 | 11-05-2004 19:00:49 |
|