2009-07-24 5 views
1

J'ai un fichier xml qui ressemblelibxml pour C++: Comment ajouter un nœud racine à l'arborescence XML?

<siteinfo> 
... 
</siteinfo> 
<page> 
    <title>...</title> 
    <revision> 
    ... 
    <revision> 
</page> 

suivante Il ne dispose pas d'une racine/nœud enfermant donc je reçois le « contenu supplémentaire à la fin du document » sur l'exécution de mon programme. Après avoir ouvert le fichier pour l'analyse à l'aide de libxml, y a-t-il un moyen d'ajouter facilement ce nœud racine/englobant à l'arbre d'analyse?

+0

Est-il possible de changer d'écrivain XML? Je pense qu'il vaudra mieux le rendre conforme au XML. –

Répondre

3

Si vous ne pouvez pas modifier la structure du XML source, un moyen plus facile serait de créer une chaîne comme:

string xml = string("<root>") + file_contents + string("</root>"); 

Ensuite, vous pouvez analyser cette chaîne facilement. En passant, puisque vous utilisez C++, vous devriez essayer libxml ++. C'est un wrapper C++ pour libxml et c'est très bien.

+0

Merci. Donc, il est possible d'analyser une chaîne plutôt qu'un fichier? Si oui, votre réponse est exactement ce dont j'ai besoin :-) –

+0

C'est possible avec libxml ++, donc cela devrait évidemment être possible avec libxml, qui est la bibliothèque de base. – Sahas

+0

Merci! Je pensais que j'utilisais libxml ++. Apparemment non. J'ai dû installer autant de paquets, j'ai perdu la trace. Je m'en tiendrai à libxml2 jusqu'à ce que je trouve libxml ++ beaucoup plus facile ;-). Merci encore. –

Questions connexes