Function DE Version 10.01

@XMLGetContent

XML

Syntax

@XMLGetContent(XMLN);
@XMLGetContent(XMLN;Options);

Beschreibung

Diese @Function ermittelt den direkten Textinhalt eines XML-Knotens.
Berücksichtigt werden ausschließlich unmittelbar untergeordnete Text- und CDATA-Knoten. Inhalte untergeordneter XML-Elemente werden nicht berücksichtigt.
Der Inhalt wird entsprechend den für das XML-Handle gesetzten Output-Flags in den gewünschten Zeichensatz konvertiert.
Über den optionalen Parameter Options wird festgelegt, ob der Inhalt als Text oder als Binärpuffer zurückgegeben wird.

VSPECHXMLNODE XMLN:
Handle des XML-Knotens, dessen gesamter Inhalt ermittelt werden soll.
XMLN muss ein gültiges VSPECHXMLNODE (XMLN) Handle enthalten, das auf einen XML-Knoten verweist.

TEXT Options (Optional):
Legt den Datentyp des zurückgegebenen Attributwertes fest.

Option : Bedeutung
"A" : Gibt den Attributwert als TEXT zurück.
"B" : Gibt den Attributwert als VSPECBINBUFFER zurück.

Wird Options nicht angegeben, entspricht dies Option "A".
Bei Option "A" darf der zurückgegebene Wert die maximale Größe eines Text-Items nicht überschreiten.
Bei Option "B" können Inhalte bis zu einer maximalen Größe von 100 MB zurückgegeben werden.

Return-Wert:
Bei erfolgreicher Ausführung liefert die @Function den direkten Text- und CDATA-Inhalt des XML-Knotens entsprechend Options als TEXT oder VSPECBINBUFFER zurück.
Mehrere direkt untergeordnete Text- oder CDATA-Knoten werden in ihrer Reihenfolge zu einem gemeinsamen Ergebnis zusammengefügt.
Textinhalte innerhalb untergeordneter XML-Elemente werden nicht berücksichtigt.
Bei einem ungültigen XML-Node-Handle, einer ungültigen Option, einem Fehler bei der Zeichensatzkonvertierung oder einer Überschreitung der zulässigen Größe liefert die @Function @ERROR.

Beispiel: @XMLGetContent(XMLN);

XML := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<customer>" +
"Customer: " +
"<name>Example GmbH</name>" +
" Berlin" +
"</customer>";

hXMLD := @XMLParse(XML);
hXMLRoot := @XMLGetRoot(hXMLD);
Content := @XMLGetContent(hXMLRoot);
@XMLRelease(hXMLD);

Das Beispiel ermittelt ausschließlich den direkten Textinhalt des Root-Elements. Content enthält anschließend "Customer: Berlin".
Der Inhalt "Example GmbH" des untergeordneten "<name>"-Elements wird nicht berücksichtigt.

Beispiel: @XMLGetContent(XMLN;Options);

XML := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<customer><![CDATA[Example GmbH & Co. KG]]"+
"></customer>";

hXMLD := @XMLParse(XML);
hXMLRoot := @XMLGetRoot(hXMLD);
Content := @XMLGetContent(hXMLRoot;"B");
@DestroyBuffer(Content);
@XMLRelease(hXMLD);

Das Beispiel ermittelt den CDATA-Inhalt des XML-Knotens und gibt ihn als VSPECBINBUFFER zurück.