@XMLGetNextSiblingByName
Syntax
@XMLGetNextSiblingByName(XMLN;Name);
@XMLGetNextSiblingByName(XMLN;Name;Namespace);
Beschreibung
Diese @Function ermittelt das nächste XML-Sibling-Element mit einem bestimmten Namen.
Die Suche beginnt beim unmittelbar folgenden Sibling-Element des übergebenen XML-Knotens und wird fortgesetzt, bis ein Element mit passendem Namen gefunden wurde.
Optional kann zusätzlich ein Namespace angegeben werden. In diesem Fall muss sowohl der Elementname als auch die Namespace-URI übereinstimmen.
Die Suchparameter werden entsprechend den für das XML-Handle gesetzten Zeichensatz-Flags nach UTF-8 konvertiert.
Die vom übergebenen XML-Node-Handle geerbten Flags werden auf das zurückgegebene XML-Node-Handle übernommen.
VSPECHXMLNODE XMLN:
Handle des XML-Knotens, ab dem nach dem nächsten passenden Sibling-Element gesucht werden soll.
XMLN muss ein gültiges VSPECHXMLNODE (XMLN) Handle enthalten, das auf einen XML-Knoten verweist.
TEXT Name:
Name des gesuchten XML-Elements.
Es werden ausschließlich nachfolgende Sibling-Elemente durchsucht. Andere Knotentypen wie Text- oder Kommentarknoten werden nicht berücksichtigt.
TEXT Namespace (Optional)
Namespace-URI des gesuchten XML-Elements.
Wird kein Namespace angegeben, erfolgt die Suche ausschließlich anhand des Elementnamens.
Wird ein leerer Text ("") als Namespace angegeben, wird ausdrücklich nach einem Element ohne Namespace gesucht.
Return-Wert:
Wird ein passendes Element gefunden, liefert die @Function ein VSPECHXMLNODE (XMLN) Handle auf das erste nachfolgende passende Sibling-Element zurück.
Wird kein passendes Element gefunden oder ist das übergebene XML-Node-Handle ungültig, liefert die @Function @ERROR.
Beispiel: @XMLGetNextSiblingByName(XMLN;Name);
XML := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<customers>" +
" <customer>First</customer>" +
" <city>Berlin</city>" +
" <customer>Second</customer>" +
"</customers>";
hXMLD := @XMLParse(XML);
hXMLRoot := @XMLGetRoot(hXMLD);
hCustomer1 := @XMLGetChildByName(hXMLRoot;"customer");
hCustomer2 := @XMLGetNextSiblingByName(hCustomer1;"customer");
@XMLRelease(hXMLD);
Das Beispiel ermittelt zunächst das erste "<customer>"-Element und anschließend das nächste Sibling-Element mit demselben Namen.
Beispiel: @XMLGetNextSiblingByName(XMLN;Name;Namespace);
XML := "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<customers xmlns:c=\"https://example.com/customer\">" +
" <c:customer>First</c:customer>" +
" <customer>Other</customer>" +
" <c:customer>Second</c:customer>" +
"</customers>";
hXMLD := @XMLParse(XML);
hXMLRoot := @XMLGetRoot(hXMLD);
hCustomer1 := @XMLGetChildByName(hXMLRoot;"customer";"https://example.com/customer");
hCustomer2 := @XMLGetNextSiblingByName(hCustomer1;"customer";"https://example.com/customer");
@XMLRelease(hXMLD);
Das Beispiel ermittelt das nächste Sibling-Element mit dem Namen "customer" und der Namespace-URI "https://example.com/customer".
