Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
html aus body-item extrahieren
Sebastianh:
Hallo,
ich möchte den Inhalt eines Dokuments (einer Mail) in einem XML-File speichern. Dazu folgender Code:
--- Code: ---if(item.getName().equals("Body")){
Element e = mail.addElement("Body");
e.addText(doc.getItemValueString(item.getName()));
}
--- Ende Code ---
"mail" ist ein dom4J-Objekt und "doc" das Dokument aus dem ich extrahieren möchte. Klappt auch alles wunderbar, sobald ich aber eine HTML-Email vorliegen habe, wird lediglich der Plaintext an dieser Stelle extrahiert. Sämtliche HTML-Tags gehen verloren. Jemand eine Idee wie ich an den "Quellcode" (samt HTML-Tags) der Mail komme?
Gruß,
Sebastian
m3:
Designer-Hilfe, getMIMEEntity method des Document Objektes.
Sebastianh:
ok, Danke. Vergessen zu erwähnen dass ich soweit bereits war ::)
getMimeEntity gibt mir an der oben genannten Stelle allerdings "null" zurück. Damit konnte ich recht wenig anfangen, und dachte mir, ich wäre auf dem falschen Weg.
Sebastianh:
egal was ich mache,
--- Code: ---document.getMimeEntity();
--- Ende Code ---
gibt mir IMMER null zurück.
Folgende Beobachtung: Im NotesClient in den Dokument-Eigenschaften wird mir unter Body folgendes angezeigt:
--- Code: ---Feldname: Body
Datentyp: MIME-Element
...
Content-Transfer-Encoding: 8bit
Content-Type: text/html;
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset=ISO-8859-15
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<div class="moz-text-html" lang="x-western">
<h1>Überschrift</h1>
...
--- Ende Code ---
Insgesamt existieren 5 Body Items (2 davon sind Attachments). Wenn ich via
--- Code: ---Vector items = doc.getItems();
for (Object o : items){
Item item = (Item) o;
}
--- Ende Code ---
bekomme ich ein Bodyitem angezeigt, welches dann den Text (ohne jedwede Formatinfo) enthält. Nach dem Cast ist das Item allerdings vom Typ RichTextItem. Wenn ich jetzt das Itemobjekt zu Richtextitem caste, und dann
--- Code: ---Richtextitem.getFormattedText(false, 0, 0);
--- Ende Code ---
(mit getUnformattedText() gibt es im übrigen auch keine Tags)
anwende, bekomme ich nach wie vor nur einen String ohne jegliche Formatierungsangaben zurück. Es muss doch irgendwie möglich sein, an den MimeEntity bzw. den kompletten Text aus dem Body-Item (inklusive HTML-Tags) zu kommen! Btw.:
--- Code: ---session.setConvertMIME(false);
--- Ende Code ---
ist natürlich gesetzt :)
Gruß,
Sebastian
flaite:
Ich glaub auch nicht das das so geht.
Hab das letztens so gemacht.
In der Mail-Maske
vor dem Body Feld <!-- download start --> in passThru Html
Hinter dem Body Feld <!-- download end --> in passThru html
Dann mit jakarta.HtmlClient die einzelnen Dokumenten geladen (also praktisch als html von Domino Web).
Dann was zwischen <!-- download start --> und <!-- download end --> herausschneiden.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln