Domino 9 und frühere Versionen > ND6: Entwicklung

XML von Grund auf mit Lotusscript erstellen

<< < (3/4) > >>

botschi:
Ja, aber da kann ich Dir nicht weiterhelfen...

Matthias

flaite:

--- Zitat von: botschi am 13.11.07 - 15:10:07 ---
Da brauchst Du kein XML-Parser oder sowas für- bin ich der Meinung...

--- Ende Zitat ---
I second that a lot.
Es ist eben gerade nicht professioneller etwas umständlicheres zu nehmen.
Am Ende des Tages gehts eigentlich meist darum, dass man
a) Datenstrukturen aus deinem Programm zu xml machst (XML-Serialisierung).
b) XML zu Datenstrukturen für dein Programm machst (XML-De-Serialisierung). 

Für a) ist die direkte Konkenatierung als String in vielen Fällen eine effiziente Möglichkeit. So stehts auch beim true xml intelectual Elliotte Rusty Harold (http://www.cafeconleche.org/)
Die XML-DOM Api ist - find nicht nur ich - ziemlich aufwendig. Würd mich auf jeden Fall auch mal mit der SAX-API beschäftigen (mit der kann man aber nur b) machen. Für a) wie gesagt: String Konkenatierung. Damit hab ich schon komplexe SOAP konforme XML Files zusammengekleistert und dem SAP Server ist es auch egal.

Heute gibts viel effektivere XML-Apis. Zum Beispiel für in Notes nutzbareres Java.
Unterstützt bitte mein Lobbying für XPath in Lotus Script:
http://ideajam.net/IdeaJam/P/ij.nsf/0/7F9DF9E5304E3AD08625738A00651D8B?OpenDocument

Ich mach sowas mit Java, aber mit eigenen LotusScript Structs oder Klassen kannst du das effizienter machen.

--- Code: ---class Tag
  private tagName as String
  private tagTextNode As String
  private childNodes as Variant '(ein Array aus Tag-Objekten)
  private attrNames as Variant ' (ein Array aus attribut-Namen als String array. Hat genauso viele Elemente wie attrValues
  private attrValues as Variant ' (ein Array aus attribut-Werten als String array. Hat genauso viele Elemente wie attrNames

  public new (tagName as String, tagTextNode as String)
   ' musst du selbst machen

  end new

  public sub addAttr(name as String, value as String)
    ' musst du selbst machen
  end sub
  public sub addChildTag(Variant tag)
   'musst du selbst machen
  end sub

  public sub addChildTags(Variant array_of_tags)
    'musst du selbst machen
  end sub

  public function toXml() as String
    ' musst du selbst machen
  end function
end class

--- Ende Code ---
Gruß Axel 

botschi:
Ich verstehe kein Wort  ???
Aber muss ich ja auch nicht  :D

Matthias

flaite:
Wieso.

Als Code, der die Klasse nutzt sowas wie:


--- Code: ---Dim tagColumnHeader as Tag
Dim tagColumn As Tag
tagColumn = new Tag("column", "")
tagColum.addAttribute("itemname", mstrItemName)
tagColum.addAttribute("width", mstrWidth)
[...]
tagColumn.addChildTag(tagColumnHeader)

--- Ende Code ---

Mit so etwas bekommst du code hin, der wiederverwendbareren und übersichtlicheren XML-Generier-Code erzeugt.

Gruß Axel

botschi:
Ah, alles klar.
Ich habs nicht gleich verstanden, auf was Du hinaus willst. Bei "I second that a lot" bin ich schon ausgestiegen  ;D

Matthias

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln