2010-08-22 11 views
6

Sto analizzando HTML con libxml2, utilizzando XPath per trovare elementi. Una volta trovato l'elemento che sto cercando, come posso ottenere l'HTML come una stringa da quell'elemento (tenendo presente che questo elemento avrà molti elementi figlio). Dato un documento:libxml2 analisi 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 di aver recuperato l'elemento body con XPath e quindi ottenere il codice HTML per questo, mi piacerebbe finire con una stringa che contiene:

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

Come posso fare Questo?

risposta

6

Questo è lo scopo della xmlNodeDump:

EDIT:

Quando hai un xmlNodePtrnode, fare qualcosa di simile:

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

il 4 e 5 parametri controllano indentazione e la formattazione.

+0

Ottimo, grazie! – johndoe