HTML Parsen

  • Hallo,


    diese Frage ist zwar nur 1/2 Domino, da es sich eher um ein Javaproblem handelt, und trotzdem hoffe ich auf eure Hilfe. Das ganze soll auf ND7 laufen...(also Java 1.4.2)


    Leider finde ich meinen Fehler nicht.
    Ich möchte in beliebigen Seiten alle URL's einer Frameset suchen und jeweils in einen String legen um diese dann später einzeln aufzurufen. Leider erhalte ich (hier: bei der Ausgabe der ersten URL) eine NullPointer Exception.


    Vielen Dank für jede Hilfe!


    Gruß,
    Marcus



    ##################
    Java Code:
    ##################


    URL urlobj = new URL(str);


    HttpURLConnection uc = null;
    uc = (HttpURLConnection)urlobj.openConnection();
    uc.setUseCaches(false);
    DataInputStream is = new DataInputStream(uc.getInputStream());


    HTMLEditorKit hKit = new HTMLEditorKit();
    HTMLDocument hDoc = new HTMLDocument();
    hKit.read(is, hDoc, 0);
    HTMLDocument.Iterator it = hDoc.getIterator(HTML.Tag.FRAME);


    AttributeSet attSet = it.getAttributes();
    String s = (String)attSet.getAttribute(HTML.Attribute.SRC);
    System.out.println(s);





    ##################
    Beispiel HTML-Seite:
    ##################


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
    <html>
    <head>


    <script language="JavaScript" type="text/javascript">
    <!--
    self._domino_name = "_Main";
    // -->
    </script>
    </head>


    <frameset cols="45%,55%">


    <frame src="/Test/HET/PerformanceTestDB.nsf/ContentDeliveryMeasurement?OpenForm">


    <frameset rows="1*,1*">


    <frame src="/Test/HET/PerformanceTestDB.nsf/DocsInserted?OpenView">


    <frame name="docPreviewFrame" src="/Test/HET/PerformanceTestDB.nsf/select?OpenForm">
    </frameset>
    </frameset>
    </html>

  • Habe jetzt sowieso noch etwas daran probiert und bekomme nun andere Fehler ;) ...



    javax.swing.text.ChangedCharSetException
    at javax.swing.text.html.parser.DocumentParser.handleEmptyTag(DocumentParser.java:198)
    at javax.swing.text.html.parser.Parser.startTag(Parser.java:401)
    at javax.swing.text.html.parser.Parser.parseTag(Parser.java:1875)
    at javax.swing.text.html.parser.Parser.parseContent(Parser.java:1910)
    at javax.swing.text.html.parser.Parser.parse(Parser.java:2076)
    at javax.swing.text.html.parser.DocumentParser.parse(DocumentParser.java:135)
    at javax.swing.text.html.parser.ParserDelegator.parse(ParserDelegator.java:107)
    at javax.swing.text.html.HTMLEditorKit.read(HTMLEditorKit.java:262)
    at javax.swing.text.DefaultEditorKit.read(DefaultEditorKit.java:163)
    at conparse.main(conparse.java:34)
    at conparseTest.testMain(conparseTest.java:17)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
    at java.lang.reflect.Method.invoke(Method.java:391)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)