Domino 9 und frühere Versionen > ND7: Entwicklung

XML-Datei aus Mail einlesen

<< < (2/6) > >>

flaite:
Mit JavaScript kannst du aber sicher auch nicht Attachments und eingebettete Objekte auslesen.
Nur wenn das xml als Text im Inhalt des body Feldes der Mail ist, dann geht das sicher.
Dann täte es aber auch ein Backend-Agent in Java, was ich für die bessere Lösung halte.


Gruß Axel

Michael Gerdes:
Hi.

So sieht das aus. Bin auch schon darauf gestoßen.
Wie könnte so ein Backend-Agent aussehen? Hast Du ein Beispiel parat?
Bei dem ganzen Java-gezuppel wird einem ja ganz anders. Hatte zwar während des Studiums einen Grundkurs, aber der hat wohl seine Wirkung verloren...

Greetz

Michael

flaite:
schnell geschrieben:


--- Code: ---import lotus.domino.*;
import java.io.StringReader;

public class JavaAgent extends AgentBase {

public void NotesMain() {
System.out.println("hallo");
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

String xmlIn = "<?xml version=\"1.0\"?><root><kindOfElement>inhalt</kindOfElement></root>";
StringReader sr = new StringReader(xmlIn);

nu.xom.Document doc = null;
//nu.xom.Document doc = new nu.xom.Document(sr);
nu.xom.Builder parser = new nu.xom.Builder();
doc = parser.build(sr);
nu.xom.Attribute bonusAttribute = new nu.xom.Attribute("bonus", "attribute");
nu.xom.Element el = new nu.xom.Element("bonusNode");
el.appendChild("bonus text content");
el.addAttribute(bonusAttribute);

nu.xom.Element root = doc.getRootElement();
root.appendChild(el);
System.out.println(">" + doc.toString());
System.out.println(">>>" + doc.toXML()); 

} catch(Exception e) {
e.printStackTrace();
}
}
}

--- Ende Code ---
getestet in Notes 7.
ABER: Du müsstest erst einmal die xom Library von Elliotte Rusty Harold einbinden.
http://www.xom.nu/
Die xom-1.1.jar. (sieht so aus wie in Screenshot. Der Edit Project Button im Java Projekt.
Läuft. Ich habs getestet.

System.out.println wird in Notes-Menü File:Tools:Show in Java Debug Console ausgegeben.

Wie du siehst generiere ich das nu.xom.Document aus einem String.
Später werden dann mit der xom Api ein Element, 1 Attribut und 1 Textnode hinzugefügt.

Jetzt weiss ich auch, dass meine Lieblings-XML-Library XOM von Eliotte Rusty Harold in Notes 7 funktioniert (hat mich immer schon interessiert).  ;D

Gruß Axel

flaite:
Ergebnis sieht dann so aus:

--- Code: ---hallo
>[nu.xom.Document: root]
>>><?xml version="1.0"?>
<root><kindOfElement>inhalt</kindOfElement><bonusNode bonus="attribute">bonus text content</bonusNode></root>

--- Ende Code ---
wie man sieht, sind bonusNode, bonus="attribute" und bonus text content an die konkreten Stellen reingefügt worden.

Michael Gerdes:
Guten Morgen Axel.

Vielen Dank für die schnelle Antwort und einem garantiert funktionierenden Beispiel.
Wie jedoch Eingangs beschrieben würde ich gerne das XML-File direkt aus der E-Mail einlesen ohne vorher das File lokal abzulegen  oder den Code zu extrahieren.
Aus Mangel an Java-Know-How und der schwindenden Zeit zur Realisierung einer Lösung werde ich mich vorerst für die Lotus-Script-Variante, dem temporären, lokalen wegschreiben, dann einlesen und anschließendem Löschen des Files entscheiden.

Nochmals vielen Dank  :)

Und falls doch noch jemand eine gurte Idee hat, so kann er den Thread gerne wieder aufgreifen.

Greetz

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln