2010-08-22 37 views
6

Tôi đang phân tích cú pháp HTML bằng libxml2, sử dụng XPath để tìm các phần tử. Khi tôi tìm thấy phần tử mà tôi đang tìm kiếm, làm cách nào tôi có thể lấy HTML làm chuỗi từ phần tử đó (lưu ý rằng phần tử này sẽ có nhiều phần tử con). Với một tài liệu:libxml2 Phân tích cú pháp 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> 

Nói rằng tôi lấy ra các yếu tố body với XPath và sau đó nhận được HTML cho rằng, tôi muốn kết thúc với một chuỗi chứa:

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

Làm thế nào tôi có thể làm điều này?

Trả lời

6

Đó là mục đích của xmlNodeDump:

EDIT:

Khi bạn có một xmlNodePtrnode, làm điều gì đó như:

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

lần thứ 4 và các thông số 5 kiểm soát thụt đầu dòng và định dạng.

+0

Tuyệt vời, cảm ơn bạn! – johndoe

Các vấn đề liên quan