Accueil > > > ENCORE UN PARSER XML
ENCORE UN PARSER XML
Information sur la source
Description
Apres avoir utiliser TinyXml, je me suis penché sur l'utilisation des parser xml fournit sur cppfrance, mais aucun ne m'a satisfait. Soit c'était trop complexe, soit pas compilable sur vc++ 6, ... brefle je me suis mis à faire le mien pour remplacer l'utilisation de la tinyxml que j'avais dans mon code. alors, le parser gere ce type de code : <?xml ... ?> // cette balise sera oublié <ESSAI param="variable"/> <!-- commentaire --> <essai param1="blabla" > <glop /> <![CDATA[ blablabla <a>sqdsdqsdsqdqsdqsdqs</a>]]></ESSAI> donc il gere : - l'imbriquation de balise - les parametres d'une balise - le fameux <![CDATA[ ... ]]> qui permet de ne pas analyser le contenu - il permet grace à la classe CFileX (fournit dans une de mes sources) de charger un fichier xml sur le disque dur, http ou ftp il n'y a pas de std::string ou vector ou map ou list ou autre d'utilisé, je ne le souhaitais pas. il n'y a pas de fuite de mémoire
Source
- // xml.cpp : Defines the entry point for the console application.
- //
-
- #include "stdafx.h"
- #include "xmlparser.h"
-
-
-
- void enfant(CXmlNode *p) {
- while (p) {
- if (p->GetParentTag()) printf("[%s] -> [%s]\n",p->GetParentTag()->GetName(),p->GetName());
- else printf("[] -> [%s]\n",p->GetName());
- enfant(p->GetFirstTag());
- p = p->GetNextTag();
- }
- }
-
- int main(int argc, char* argv[])
- {
- CXmlParser xml;
-
- int r=xml.Load("http://fr.gizmodo.com/rss20.xml");
- if (r == -1) return 0;
-
- enfant(xml.GetFirstTag());
-
- CXmlNode *rss = xml.GetFirstTag("rss");
-
- while (rss) {
- const char *v=rss->GetCharField("version");
- printf("[%s version = %s ]\n",rss->GetName(),v);
- CXmlNode *channel = rss->GetFirstTag("channel");
- while (channel) {
- printf("[%s] -> [%s] : %s\n",channel->GetParentTag()->GetName(),channel->GetName(),channel->GetText());
- channel = channel->GetNextTag("channel");
- }
- rss = rss->GetNextTag("rss");
- }
-
- return 0;
- }
-
// xml.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "xmlparser.h"
void enfant(CXmlNode *p) {
while (p) {
if (p->GetParentTag()) printf("[%s] -> [%s]\n",p->GetParentTag()->GetName(),p->GetName());
else printf("[] -> [%s]\n",p->GetName());
enfant(p->GetFirstTag());
p = p->GetNextTag();
}
}
int main(int argc, char* argv[])
{
CXmlParser xml;
int r=xml.Load("http://fr.gizmodo.com/rss20.xml");
if (r == -1) return 0;
enfant(xml.GetFirstTag());
CXmlNode *rss = xml.GetFirstTag("rss");
while (rss) {
const char *v=rss->GetCharField("version");
printf("[%s version = %s ]\n",rss->GetName(),v);
CXmlNode *channel = rss->GetFirstTag("channel");
while (channel) {
printf("[%s] -> [%s] : %s\n",channel->GetParentTag()->GetName(),channel->GetName(),channel->GetText());
channel = channel->GetNextTag("channel");
}
rss = rss->GetNextTag("rss");
}
return 0;
}
Historique
- 04 février 2006 23:11:53 :
- .
- 05 février 2006 00:17:09 :
- correction d'un bogue qui sur la lecture des parametres de balise
- 05 février 2006 00:41:32 :
- correction d'un bogue, sur la gestion des fichiers dynamiques. ils ne sont plus géré.
- 15 décembre 2006 01:08:12 :
- correction de 2 petits bogues dont celui spécifié par SnOOpss
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
parser xml en C [ par jbt36 ]
bonjour à tous,j'ai besoin de realiser un editeur xml en Cpour cela je dois notamment parser le fichier xml pour pouvoir le manipuler,l'affichersous f
XML DOM xerces parser une chaine de caractères avec Wrapper4InputSource [ par pbouchard ]
Bonjour, Je voudrai parser une string avec l'api dom de xerces. J'arrive bien à parser du xml quand je donne un nom de fichier (dans la fonction
Besoin d'aide pour la réalisation d'un parser xml avec VC++6 [ par petiot_cedric2 ]
Mon but est de créer une application avec VC++6 avec une interface graphique en C++ pour ouvrir un fichier XML, le parser et le réécrir
parser un document XML avec C++ [ par assiatoune ]
bonjour tout le monde!ma question est la suivante: j'ai un document XML (un schéma XML) et je veux extraire (avec C++) dante une structure d
parser un schéma XML avec C++ [ par assiatoune ]
Bonjour tout le monde, je vous remercie de m'avoir répondu. mais mon probleme est que je suis débtante en visuel C++,
Parseurs XML pour C++ [ par Direkt ]
Bonjour tout le monde,Dans le cadre d'un developpement en C++, j'ai besoin d'un parseur XML qui fonctionne sous:- Linux (SLC3-SLC4. C'est le point le
XML Parser [ par tylenchuz ]
Bonjour,j'ai un document xml, (voir en dessous) et je voudrai juste lire les variables coloré en rose.le but de mon appli, c'est de remplacer mes fich
parser xml [ par khalil1982 ]
Salut tlm,J'avais besoin d'un parseur Xml dans mon projet, qui est en C sous Unix mais de petite tailleet si c possible avec les deux approche SAX et
parser XML [ par khalil1982 ]
salut tlm,je veux parser un fichier XML en C sous Linux mais de petite taille( < à 80k ), et est ce que c possible de trouver les deux approche DOM
XML C/C++ parser et EXCEL [ par Kurpeus1 ]
Bonjour, Je voudrais savoir si quelqu'un a déjà parsé du xml à la sauce microsoft Excel et si oui avec quel parser il l'a fait ?
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|