can not get nsidomdocument from html file using mozilla browser instance
New <[email protected]> Thu, 4 Sep 2008 12:42:42 -0700 (PDT)
| Newsgroups | gmane.comp.mozilla.devel.java |
|---|---|
| Organization | http://groups.google.com |
| Message-ID | <f6955c18-5579-417d-95c0-8a00386de95c__21570.7164411016$1220557595$gmane$org@v16g2000prc.googlegroups.com> |
The following java works as java appliation. It spits out all tags in
the HTML file. When I integrate the app with eclipse application, the
app does not pass the while loop. Does anybody provide me a sample
code to get nsIDOMDocument from HTML file using Mozilla browser
instance.
public class TestSwtBrowser {
public static void main(String[] args) {
//Display display = new Display();
Display display = Display.getDefault();
final Shell shell = new Shell(display);
//final Shell shell = new Shell();
final Browser browser;
browser = new Browser(shell, SWT.MOZILLA);
if (browser.setUrl("C:\\eclipse\\eclipse\\TestHtml\\html\
\forms_e.html")) {
browser.addProgressListener(new ProgressListener() {
public void changed(ProgressEvent event) {
//Browser browser = (Browser)event.getSource();
nsIWebBrowser webBrowser =
(nsIWebBrowser)browser.getWebBrowser();
if (webBrowser == null) {
System.out.println("Could not get the nsIWebBrowser
from the Browser widget");
}
nsIDOMWindow window = webBrowser.getContentDOMWindow();
nsIDOMDocument document = window.getDocument();
//nsIDOMDocument document = browser.getDocument();
System.out.println(document);
//recursive call for displaying all children
System.out.println("before recursive call for displaying
all children");
nsIDOMNode fNode = ((nsIDOMNode) document).getFirstChild();
System.out.println("First Node="+fNode.getNodeName());
displayAllChildren(fNode);
nsIDOMNode lNode = ((nsIDOMNode) document).getLastChild();
System.out.println("Last Node="+lNode.getNodeName());
System.out.println("after recursive call for displaying all
children");
}
public void completed(ProgressEvent event) {
/* nsIWebBrowser webBrowser =
(nsIWebBrowser)browser.getWebBrowser();
if (webBrowser == null) {
System.out.println("Could not get the nsIWebBrowser
from the Browser widget");
}
nsIDOMWindow window = webBrowser.getContentDOMWindow();
nsIDOMDocument document = window.getDocument();
//nsIDOMDocument document = browser.getDocument();
System.out.println(document);*/
//nsIDOMElement rootElement =
document.getDocumentElement();
//printElement(rootElement);
}
} );
}
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private static void displayAllChildren(nsIDOMNode node) {
nsIDOMNodeList nsiNodelist = node.getChildNodes();
long size = nsiNodelist.getLength();
for (long c = 0; c < size; ++c) {
nsIDOMNode child = nsiNodelist.item(c);
System.out.println("tagName="+child.getNodeName());
if (child.hasChildNodes()) {
displayAllChildren(child);
}
}
}