12
votes

Comment peut-on utiliser libxml2 pour analyser les données de XML?

J'ai regardé autour des échantillons de code LibXML2 et je suis confus sur la façon de les faire tous ensemble.

Quelles sont les étapes nécessaires lors de l'utilisation de LibXML2 pour analyser ou extraire des données d'un fichier XML?

Je voudrais obtenir la maintenance et éventuellement stocker des informations pour, certains attributs. Comment est-ce fait?


0 commentaires

5 Réponses :


8
votes

Je crois que vous avez d'abord besoin de créer un arbre d'analyse. Peut-être que cet article peut aider, regarder à travers la section qui dit Comment analyser un arbre avec libxml2 .


2 commentaires

J'aurais trouvé cela utile l'autre jour, mais comme ça va, j'ai eu du code pour travailler à partir de et du moteur de recherche. Autant que je sache, vous voudrez également lire la documentation de la fonction xmlgetprop qui donnera les valeurs des propriétés d'un nœud, c'est-à-dire .


Merci James, je vais regarder.



3
votes

J'ai trouvé ces deux ressources utiles lorsque j'apprendais à utiliser libxml2 pour construire un analyseur de flux RSS.

Tutoriel avec interface SAX

tutoriel à l'aide de l'arborescence DOM (exemple de code pour obtenir une valeur d'attribut incluse)


0 commentaires

4
votes

libxml2 fournit divers exemples montrant l'utilisation de base.

http://xmlsoft.org/examples/index.html

Pour vos objectifs déclarés, Tree1.ca serait probablement le plus pertinent.

Tree1.c: Navigate un arbre à imprimer Noms d'élément

Analyser un fichier à un arbre, utilisez xmldocgetrootelement () pour obtenir la racine élément, puis parcourez le document et Imprimer tout le nom de l'élément dans le document ordre.

http://xmlsoft.org/examples/tree1.c

Une fois que vous avez une structure XMLNode pour un élément, l'élément "Propriétés" est une liste liée des attributs. Chaque objet XMLATTR a un objet "nom" et "enfants" (qui sont le nom / la valeur de cet attribut, respectivement) et un élément "suivant" qui pointe vers l'attribut suivant (ou null pour le dernier).

http://xmlsoft.org/html/libxml-tree.html#xmlnode < / a>

http://xmlsoft.org/html/libxml-tree.html#xmlattr < / a>


1 commentaires

Merci pour cela. Donc, une fois que j'ai tous les éléments, comment puis-je accéder à leurs attributs?



2
votes

Ici, j'ai mentionné le processus complet pour extraire des données XML / HTML du fichier sur la plate-forme Windows.

  1. premier téléchargement pré-compilé .dll formulaire http://xmlsoft.org/ Sources / Win32 /
  2. Téléchargez également sa dépendance iconv.dll et zlib1.dll de la même page

  3. extraire tous les fichiers .zip dans le même répertoire. Pour ex: D: \ démo \

  4. copie iconv.dll , zlib1.dll et libxml2.dll dans c: \ windows \ system32 < / Strong> Denirectory

  5. marque libxml_test.cpp fichier et copie le code suivant dans ce fichier. XXX

  6. Commande Visual Studio Open Visual PROMT

  7. Allez à d: \ Demo Annuaire

  8. Exécuter cl libxml_test.cpp /i".7.8.win32-2.7.8.win32oinclude "/i".Oiconv-1.9.2.win32\include" / link libxml2-2.7. 8.Win32 \ lib \ libxml2.lib commande

  9. exécuté binaire en utilisant libxml_test.exe test.html (this test.html peut être n'importe quel fichier HTML valide)


0 commentaires

0
votes

Vous pouvez faire référence à Cette répond. Ici, ils stockent les données dans le format de structure et utilisent davantage en passant une adresse de structure à une fonction.

Vous pouvez trouver un code de détail en C à utiliser.

Code - >> Ce


0 commentaires