Re: can not get nsidomdocument from html file using mozilla browser instance

New <[email protected]> Thu, 18 Sep 2008 11:15:50 -0700 (PDT)
Newsgroups gmane.comp.mozilla.devel.java
Organization http://groups.google.com
Message-ID <[email protected]>
I would use my original messages's code snippet.


On Sep 17, 4:45 am, Seb <[email protected]> wrote:
> On 9 sep, 17:37, New <[email protected]> wrote:
>
>
>
>
>
> > On Sep 5, 9:26 am, "Grant Gayed" <[email protected]> wrote:
>
> > > Are you just asking about the "while (!shell.isDisposed())" ?  If so, then
> > > change it to something like "while (!completed)", and set "completed" to
> > > true wherever appropriate (eg.- after the tags have been written to stdout).
> > > Your code worked for me once I did this and uncommented some of its lines.
>
> > > If this is not what you were asking then please clarify what is not working
> > > for you in the context of eclipse.
>
> > > Grant
>
> > > "New" <[email protected]> wrote in message
>
> > >news:f6955c18-5579-417d-95c0-8a00386de95c@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);
> > > > }
> > > >     }
> > > > }- Hide quoted text -
>
> > > - Show quoted text -
>
> > I did not clearly expalain my problem.  My concern is when the
> > displaly disposes, the nsIDOMDocument loses the referrence. Looks like
> > nsiDOMdocument is tied to the display of mozilla instance..if I want
> > to do manipulation of the nsidomdocuement, i have to write logic in
> > either completed or changed event .   Now my problem has been
> > resolved. Thanks grant.
>
> Hi,
>
> I have exactly same problem, could you give us the code who working
> well ?
>
> Seb- Hide quoted text -
>
> - Show quoted text -