The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 2 oct. 2007 à 20:15
Look at the start and end tags in <QTY>1</QTY>. The struct contains the offsets of the left and right of both the start and end tags (i.e. all the < and > signs). The reserved integer is not currently used but could be used for a delete flag and/or level (i.e. depth) in the hierarchy to support indentation. The other three integers are indexes to the structs for the parent, child and next elements.
Donc en gros ça dit que l'indentation a pas l'air d'être implémentée sur CMarkup http://www.codeproject.com/soap/markupclass.asp donc je dirais que c'est pas possible pour le moment
=
Une autruche ne se cuit pas aux petits lardons
//recupere le fichier xml
sDocument = pMarkup->GetDoc();
//initialise la premiere ligne
ulFinLigne = sDocument.Find("\r\n",ulFinLigne);
//tant que l on n est pas a la fin du fichier
while (ulFinLigne != -1)
{
//recupere la ligne
sLigne = sDocument.Mid(ulDebLigne, ulFinLigne - ulDebLigne);
//traite la ligne
//si balise non de commentaire
if (sLigne.Left(1) == "<" && sLigne.Mid(1,1) != "?" && sLigne.Mid(1,1) != "!" )
{
//recupere la balise
sNomBalise = sLigne.Mid(sLigne.ReverseFind('<')+2,sLigne.GetLength() - sLigne.ReverseFind('<') - 3);
//si c est une balise fermante decalage cette ligne
if ( sLigne.Mid(1,1) == "/" )
{
ulNiveauSuivant--;
ulNiveau = ulNiveauSuivant;
}
//si balise vide dans ce ca pas de decalage
else if (sLigne.Mid (sLigne.GetLength() - 2,1) == "/")
{
}
//si la balise ouvrante et fermante sur la meme ligne pas de decalage else if ( sLigne.Mid( 1, sNomBalise.GetLength()) sNomBalise && sLigne.Mid( sLigne.GetLength() - sNomBalise.GetLength() - 2,1) "/" )
{
}
//si balise ouvrante le decalae est a la ligne suivante
else
{
ulNiveauSuivant++;
}
}