2010-08-22 4 views
6

Je suis en train d'analyser HTML avec libxml2, en utilisant XPath pour trouver des éléments. Une fois que j'ai trouvé l'élément que je cherche, comment puis-je obtenir le HTML en tant que chaîne à partir de cet élément (en gardant à l'esprit que cet élément aura beaucoup d'éléments enfants). Compte tenu d'un document:libxml2 Analyse syntaxique HTML

<html> 
    <header> 
     <title>Some document</title> 
    </header 

    <body> 
     <p id="faq"> 
      Some kind of text <a href="http://www.nowhere.com/">here</a>. 
     </p> 
    </body> 
</html> 

dire que je récupérai l'élément body avec XPath et obtenir le code HTML pour cela, je voudrais terminer avec une chaîne contenant:

<body> 
    <p id="faq"> 
     Some kind of text <a href="http://www.nowhere.com/">here</a>. 
    </p> 
</body> 

Comment puis-je faire ce?

Répondre

6

C'est le but de xmlNodeDump:

EDIT:

Lorsque vous avez un xmlNodePtrnode, faire quelque chose comme:

xmlBufferPtr nodeBuffer = xmlBufferCreate(); 
xmlNodeDump(nodeBuffer, doc, node, 0, 1); 
// ... Do something with nodeBuffer->content 
// When done: 
xmlBufferFree(nodeBuffer); 

Les 4e et 5e paramètres de contrôle indentation et la mise en forme.

+0

Super, merci! – johndoe