Announcement

Collapse
No announcement yet.

Parsen von XHTML-File

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parsen von XHTML-File

    Hallo zusammen!

    Habe ein Problem beim Parsen meines XHTML-Files.
    Das Problem ist, dass ich habe, ist das ich beim Parsen auf ein non well-formed-file stoße. Dieses XHTML-File wurde vorherdurch ne automatisierte Suchanfrage abgespeichert. Jetzt wenn ich es Parsen möchte kommt immer an der gleichen Stelle ein Fehler.
    2 Url's werden im XHTML-File nicht richtig dargestellt. In der Url kommen "&" Zeichen vor die aber nach XML-Standard mit "&" dargestellt werden müssten.
    Jetzt meine Frage! Gibt es eine Möglichkeit vor dem Parsen in das Dokument einzugreifen und diese Fehler zu beheben?
    Habe bisher nichts dazu gefunden wie ich das in Java verwirklichen kann!

    Danke

  • #2
    Habe bisher nichts dazu gefunden wie ich das in Java verwirklichen kann!
    ????
    Keiner hindert dich, alle & in dem File mit &amp vor dem parsen zu ersetzen

    http://entwickler-forum.de/showthrea...044#post171044
    Christian

    Comment


    • #3
      ja meine Frage betrifft ja den Punkt wie ich dies in Java verwicklichen kann! bis jetzt hab ichs nur mauell behoben aber das ist ja nicht der sinn und zweck

      Comment


      • #4
        Schon mal einen Blick in die Klasse String geworfen?
        Dort die Methode replaceAll?
        Christian

        Comment


        • #5
          Code:
                 BufferedReader br = new BufferedReader(new FileReader("deine Datei"));
                  String line;
                  StringBuilder result = new StringBuilder();
                  while ((line = br.readLine()) != null) {
                      result.append(line);
                  }
                  String text = result.toString();
                  System.out.println(text);
                  text = text.replaceAll("&[^a]", "&");
                  System.out.println(text);
          Christian

          Comment


          • #6
            Mein problem ist aber, dass ich nicht alle sondern nur einzelne ändern muss:

            z.B:´( so müsste es aussehen)
            <a href="/app/message?dpt=ma&amp;ttp=msws&amp;plf=news&amp;pid=0 408" style="color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;" title="Neue Nachrichten">0</a>

            so sieht es aus:
            <a href="/app/message?dpt=ma&;ttp=msws&plf=news&pid=0408" style="color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;" title="Neue Nachrichten">0</a>

            genau hier muss ich reinkommen um bei href die & zeichen mit &amp; zu ersetzen

            Comment


            • #7
              Und??
              Schade, dass du dir den Code offenbar nicht angeschaut hast

              im übrigen sehe ich nur im HREF &...es steht dir frei, den regulären Ausdruck deinen Bedürfnissen anzupassen
              Christian

              Comment


              • #8
                Habe deinen Code angeschaut und auch eigebaut! Er funktioniert soweit, dass das parsen jetzt auch so startet und anfängt aber an dieser Codestelle (siehe oben) abbricht und den gleicehn fehler bringt!

                Es kommen viele & zeichen vor! das Xhtml-file hat ca 1500 Zeilen und da kann ich net alle & ersetzen!

                Comment


                • #9
                  Code:
                         String text = "<a href='/app/message?dpt=ma&;ttp=msws&plf=news&pid=0408' style='color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;' title='Neue Nachrichten'>0</a>";
                   
                          text = text.replaceAll("&[^a]", "&amp;");
                          System.out.println(text);
                  ergibt bei mir

                  <a href='/app/message?dpt=ma&amp;ttp=msws&amp;lf=news&amp;id=040 8' style='color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;' title='Neue Nachrichten'>0</a>
                  Christian

                  Comment


                  • #10
                    da kann ich net alle & ersetzen
                    Das tut der Code auch nicht. Er ersetzt nur & denen kein a folgt.

                    'Wenn du eine andere Regel brauchst -> ersetze den Ausdruck
                    Christian

                    Comment


                    • #11
                      Ja das stimmt! hab nur nicht bedacht das ich das korregierte nicht zurück ins xhtml file schreiben lasse! wird ja nur so ausgegeben! muss es erst mal nur noch zurück schreiben lassen!

                      Comment


                      • #12
                        Ja das stimmt! hab nur nicht bedacht das ich das korregierte nicht zurück ins xhtml file schreiben lasse! wird ja nur so ausgegeben! muss es erst mal nur noch zurück schreiben lassen!
                        Warum übergibst du nicht den String zum parsen?
                        Christian

                        Comment


                        • #13
                          so noch ne kleine Frage:

                          warum wird das erste folgende Zeichen nach dem & immer mit ersetzt?

                          Comment


                          • #14
                            Weil nach diesem Zeiche auch gesucht wird. Dann musst du einen anderen Weg gehen...

                            http://java.sun.com/docs/books/tutor...x/matcher.html

                            Nutze nur die Suche mit den RegEx und ersetze dann mit den den Stringfunktionen ab der gefundenen Position +1

                            Aus

                            &;

                            soll

                            &amp;;

                            werden?
                            Christian

                            Comment


                            • #15
                              Nein da war ein kleiner Fehler in meiner Angabe!

                              z.B:´( so müsste es aussehen)
                              <a href="/app/message?dpt=ma&amp;ttp=msws&amp;plf=news&amp;pid=0 408" style="color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;" title="Neue Nachrichten">0</a>

                              so sieht es aus: ( ; ist eigentlich net da)
                              <a href="/app/message?dpt=ma&ttp=msws&plf=news&pid=0408" style="color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;" title="Neue Nachrichten">0</a>

                              und nach deiner Lösung schaut es so aus:
                              <a href="/app/message?dpt=ma&amp;tp=msws&amp;lf=news&amp;id=0 408" style="color: #000000; font-size: 12px; font-family: Arial,Helvetica,sans-serif; border: 0; padding: 0; margin: 0 0 0 10px; text-decoration: underline;" title="Neue Nachrichten">0</a>

                              Comment

                              Working...
                              X