ASXML

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Dieter
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 237
Registriert: Do, 14. Aug 2008 14:59
Wohnort: Straelen
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

ASXML

Beitrag von Dieter »

Hallo,
Mit der Zusatzbibliothek ASXML gelingt es mir die Anzahl der in einem XML-Dokument enthaltenen Knoten ( z.B. \\realName) auszulesen.
Außerdem gelingt es mir über xmlGetTag den Handle des ersten Knoten auszulesen. Wie komme ich nun aber an die Handles aller weiteren Knoten? Ziel ist es alle Knoten-Inhalte in ein Array einzulesen.
Zur Verdeutlichung ein paar Code-Fragmente:

Code: Alles auswählen

  ::nXmlDoc := XmlDocOpenFile(cXmlDoc)
  ::aXML := {}
  FOR i=1 TO n
    ::nActions := XmlDocSetAction(::nXmlDoc,aXmlTagName[i],;
                      {|n,c,a,h| ::Tags2Array(n,c,a,h)})
  NEXT

METHOD DkXml:Tags2Array(cTag, cContent, aAttribs, nHandle)
  LOCAL aTagMember, cTagContent, i,j
  ALTD()
  i=LEN(::aXML)+1
  AADD(::aXML,ARRAY(::nActions))
  FOR j=1 TO ::nActions
    xmlGetTag(nHandle,@aTagMember)
    cTagContent := aTagMember[XMLTAG_CONTENT]
    ::aXML[i,j] := cTagContent
  NEXT
RETURN XML_PROCESS_CONTINUE
Mit diesem Ansatz wird natürlich immer nur der erste Knoten in das Array eingelesen. :(
Viele Grüße

Dieter

Was man nicht versteht, besitzt man nicht.
Antworten