我正在编写一个Mozilla组件来获取页面中的所有链接,并使用XPCOM和C ++将它们写入文件。 我将所有链接都变成了这样的数组:
//doc is a pointer to nsIDOMDocument
doc->GetElementsByTagName(NS_LITERAL_STRING("A"), getter_AddRefs(nodeList));
nodeList->GetLength(&nodeNumb);
href = new nsEmbedString[nodeNumb];
for(PRUnit32 i=0; i< nodeNumb; i++){
nsCOMPtr<nsIDOMNode> aNode;
nodeList->Item(i, getter_AddRefs(aNode));
nsCOMPtr<nsIDOMHTMLAnchorElement> anchor = do_QueryInterface(aNode);
if(anchor){
(*outLinks)++;
href[i] = anchor->GetHref(tempHref);
}
} // end of for
但现在如何让他们写入文件。我真的很想知道如何使用XPCOM中的文件。有人可以给我一些提示或链接到教程吗?
答案 0 :(得分:0)
您可能已经看过nsIFile
,它确实提供了IsWriteable()
方法,但没有write()
。您需要nsILocalFile::openANSIFileDesc()
,它会返回普通的FILE*
。
答案 1 :(得分:0)
您需要使用nsIFileOutputStream。