XML auswerten

  • Hallo,


    Ich kenn mich mit XML überhaupt nicht aus, deshalb kann's auch sein, dass die Lösung für mein Problem ganz banal ist.


    Ich hab einen XML-Baum, der in etwa so aussieht:


    <input>
    <form name="form" value="formname"></form>
    <data>
    <value name="feldname 1" value="inhalt feld 1"></value>
    <value name="feldname 2" value="inhalt feld 2"></value>
    </data>
    </input>


    oder


    <input>
    <form name="form">formname</form>
    <data>
    <value name="feldname 1">inhalt feld 1</value>
    <value name="feldname 2">inhalt feld 2</value>
    </data>
    </input>


    Ich muß in einer Webform Felder anhand des Feldnamens und des Names vom Value vorbelegen.


    Wäre klasse wenn mir da jemand weiterhelfen könnte da ich an der Sache nicht einfach nicht weiter komm.


    Gruß

  • Spontan sehe ich zwei Lösungsmöglichkeiten.
    1.) Per LotusScript in WebQueryOpen-Agent.
    2.) Per JavaScript direkt im Browser.


    WebQueryOpen-Agent können sich bei einer hohen Anzahl von Zugriffen zu einem Performance-Bottleneck entwickeln.


    JavaScript im Browser funktioniert halt nur dann, wenn der User es aktiviert hat.


    Es hängt also ein wenig von der Anwendung und der Infrastruktur ab.


    Zu der 1. Lösung findest Du in der Domino Designer Hilfe unter dem Stichwort "Using XML with LotusScript". (Notes 6)
    Ansonsten auf gibt es entsprechende Artikel auf den IBM DeveloperWorks Lotus-Seiten. Einfach nach XML suchen.


    Die zweite Lösung ist von Domino eigentlich unabhängig. Also einfach mal nach JavaScript und XML googlen.

  • Danke erstmal für die Antwort, bringt mich aber nicht wirklich weiter.
    Das Script wird vom WebQueryOpen aufgerufen.
    Ich bin auch schon (wie in der Hilfe beschrieben) soweit gekommen, dass ich den XML-String an einen Parser übergebe, dann .Process ausführe und den Baum letzten Endes mit .Document erhalte.
    Aber wie navigiere ich in diesem Baum?

  • Es gibt zwei Möglichkeiten XML in LotusScript zu parsen. Entweder per SAX oder per DOM.


    SAX steht für "Simple API for XML" und liest den kompletten XML-Baum in einem Rutsch und erzeugt für jedes Öffnen und jedes Schließen eines Tags ein Event. SAX ist sehr schnell, aber man muss sich selber darum kümmern, wo im Baum man sich gerade befindet.


    DOM (Document Object Model) ist eine allgemeine API zum durchwandern eines Documentes in Baum-Form.



    Das folgende Beispiel zeigt die Feldinhalte an.


    In einer produktiven Umgebung würde man es sicherlich anders programmieren. Aber für den ersten Eindruck sollte es genügen.


    Ansonsten würde ich raten, einfach den Debugger einzuschalten und sich den Ablauf anzusehen. In der Hilfe gibt es bei den Methoden und Eigenschaften der «Class» NotesDOMNode einige Beispiele.