// // ConvertFromHTMLToUnicode // // Takes HTML and converts it to plain text but in unicode. // NS_IMETHODIMP nsHTMLFormatConverter::ConvertFromHTMLToUnicode(const nsAutoString & aFromStr, nsAutoString & aToStr) { // create the parser to do the conversion. aToStr.SetLength(0); nsresult rv; nsCOMPtr<nsIParser> parser = do_CreateInstance(kCParserCID, &rv); if ( !parser ) return rv; // convert it! nsCOMPtr<nsIContentSink> sink; sink = do_CreateInstance(NS_PLAINTEXTSINK_CONTRACTID); NS_ENSURE_TRUE(sink, NS_ERROR_FAILURE); nsCOMPtr<nsIHTMLToTextSink> textSink(do_QueryInterface(sink)); NS_ENSURE_TRUE(textSink, NS_ERROR_FAILURE); textSink->Initialize(&aToStr, nsIDocumentEncoder::OutputSelectionOnly | nsIDocumentEncoder::OutputAbsoluteLinks, 0); parser->SetContentSink(sink); parser->Parse(aFromStr, 0, NS_LITERAL_CSTRING("text/html"), PR_TRUE, eDTDMode_fragment); return NS_OK; } // ConvertFromHTMLToUnicode
// // ConvertFromHTMLToUnicode // // Takes HTML and converts it to plain text but in unicode. // NS_IMETHODIMP nsHTMLFormatConverter::ConvertFromHTMLToUnicode(const nsAutoString & aFromStr, nsAutoString & aToStr) { // create the parser to do the conversion. aToStr.SetLength(0); nsresult rv; nsCOMPtr<nsIParser> parser = do_CreateInstance(kCParserCID, &rv); if ( !parser ) return rv; // convert it! nsCOMPtr<nsIContentSink> sink; sink = do_CreateInstance(NS_PLAINTEXTSINK_CONTRACTID); NS_ENSURE_TRUE(sink, NS_ERROR_FAILURE); nsCOMPtr<nsIHTMLToTextSink> textSink(do_QueryInterface(sink)); NS_ENSURE_TRUE(textSink, NS_ERROR_FAILURE); // We set OutputNoScriptContent and OutputNoFramesContent unconditionally // here because |aFromStr| is already filtered based on user preferences. PRUint32 flags = nsIDocumentEncoder::OutputSelectionOnly | nsIDocumentEncoder::OutputAbsoluteLinks | nsIDocumentEncoder::OutputNoScriptContent | nsIDocumentEncoder::OutputNoFramesContent; textSink->Initialize(&aToStr, flags, 0); parser->SetContentSink(sink); parser->Parse(aFromStr, 0, NS_LITERAL_CSTRING("text/html"), PR_TRUE, eDTDMode_fragment); return NS_OK; } // ConvertFromHTMLToUnicode