Ver la Versión Completa : ¿Existen clases que manejen el parseo de documentos XML?
Hola,
Necesito parsear documentos XML. ¿Existen clases que manejen el parseo de documentos XML?
Saludos.
He encontrado un componente llamado XML Parser y lo he instalado:
http://www.destructor.de/xmlparser/index.htm
A ver qué tal va.
Os pongo un ejemplillo:
El el .h declaráis este atributo privado:
TXmlParser* XmlParser;
En el .cpp:
XmlParser->LoadFromFile("C:\\Archivos de programa\\Borland\\CBuilder6\\Projects\\xmlfiles\\test.xml");
XmlParser->Normalize = true;
XmlParser->StartScan();
while (XmlParser->Scan())
{
switch(XmlParser->CurPartType)
{
case ptXmlProlog:
{
ShowMessage("case ptXmlProlog:");
}
break;
case ptDtdc:
{
ShowMessage("case ptDtdc:");
}
break;
case ptStartTag:
{
ShowMessage("case ptStartTag: " + XmlParser->CurName);
}
case ptEmptyTag :
{
TAttrList* list = XmlParser->CurAttr;
for (int i(0); i < list->Count; i++)
ShowMessage("case ptEmptyTag: list->Name(i): " + list->Name(i) + ": " + list->Value(i));
}
break;
case ptEndTag:
{
ShowMessage("case ptEndTag: " + XmlParser->CurName);
}
break;
case ptContent:
{
ShowMessage("case ptContent: " + XmlParser->CurContent);
}
break;
case ptCData:
{
ShowMessage("case ptContent :");
}
break;
case ptComment:
{
ShowMessage("case ptComment :");
}
break;
case ptPI:
{
ShowMessage("case ptPI :");
}
break;
}
}
Le podéis pasar este documento XML para probar:
<?xml encoding="XXX" standalone="yes"?>
<cuadrado id="cuadradoUNO" lado="5">
<posicion x="5" y="7" />
</cuadrado>
< cuadrado id="cuadradoDOS" lado="19"> <!--Error de escritura-->
<posicion x="10" y="33" / >
</cuadrado >
<circulo id="circuloUNO" radio="2" >
<posicion x="5" y="7"/>
</circulo>
<cuadrado id= "cuadrado TRES" lado="2"> <!--Se ingresa un error de escritura-->
<posicion x="010" y="66" />
</cuadrado>
<rectangulo id="rectanguloUNO" base="5" altura="8">
<posicion x="5" y=" " /> <!--Se ingresa un caracter vacio-->
</rectangulo>
<segmento id="segmentoUNO" >
<inicio x="50" y="12" /> <!--No se ingresa un subatributo obligatorio-->
<fin>esto es el fin</fin>
</segmento>
Casimiro Notevi
03-07-2011, 21:35:21
Gracias por comentarlo :)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.