2010-08-22 23 views
6

Estoy analizando HTML con libxml2, usando XPath para encontrar elementos. Una vez que encontré el elemento que estoy buscando, ¿cómo puedo obtener el HTML como una cadena de ese elemento (teniendo en cuenta que este elemento tendrá muchos elementos secundarios). Teniendo en cuenta un documento:libxml2 Análisis de 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> 

Di Recuperé el elemento body con XPath y luego obtener el código HTML para eso, me gustaría terminar con una cadena que contiene:

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

¿Cómo puedo hacer ¿esta?

Respuesta

6

Ese es el propósito de xmlNodeDump:

EDIT:

Cuando se tiene un xmlNodePtrnode, hacer algo como:

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

los días 4 y 5 º parámetros controlan la sangría y el formato.

+0

¡Genial, gracias! – johndoe

Cuestiones relacionadas