Mit dem Einstellungen-Befehl lassen sich auch XML- und JSON-Daten verarbeiten.
Die Formate XML (eXtensible Markup Language) und JSON (JavaScript Object Notation) sind mittlerweile sehr weit verbreitete Datenformate in lesbarer Textform.
Beide Formate können auch hierarchische, also verschachtelte Daten enthalten.
Beim Abruf von Daten aus einem Webdienst wird das Ergebnis meist als JSON geliefert, welches ein komplettes Objekt darstellt. In diesem Objekt können die einzelnen Einträge dann ausgelesen werden.
Um einen Knoten zu spezifizieren, welcher gelesen oder geschrieben werden soll, wird unter Pfad dessen Adresse im XML-Dokument angegeben. Bei Hierarchien kann pro Ebene ein Index des zu verwendenden Eintrags angegeben werden, also etwa "root/Einträge/Eintrag(2)", wenn es mehrere Unterknoten "Eintrag" unter dem "Einträge"-Knoten gibt. Ohne Index wird der letzte passende Eintrag ausgewählt.
Im Eintrag Name/Attribut(e) können hier in dem zu schreibenden Knoten zu setzende Attribute bestimmt werden. Hierzu werden ein oder mehrere Name=Wert-Paare eingetragen.
Unter Knoten-Index kann ebenfalls der zu findende Eintrag in der unteren angegebenen Ebene bestimmt werden. Ist dieser 0 oder leer, wird immer der letzte Knoten in der Ebene verwendet. Ein Wert >0 greift auf den gleichnamigen Knoten mit dem angegebenen Index zu.
Wahlweise kann hier auch mit "Name=Wert" der Knoten herausgesucht werden, bei dem das Attribut "Name" den Wert "Wert" hat, also etwa "ID=3".
Im Modus "Lesen" kann über die Einstellung unter Einstellungsliste eine Liste mit Attributen oder Knoten im angegebenen Pfad angefordert werden. Hierbei werden je nach Auswahl folgende Werte geliefert:
• | Liste mit Namen der Kindknoten |
• | Liste mit Attributsnamen |
• | Liste der Attribute als Name=Inhalt |
• | Liste mit Werten aus Geschwisterknoten |
• | Liste der Werte aller Kindknoten |
• | Liste aller Kindknoten als Name-Wert |
Ein einmal eingelesenes oder erstelltes XML/JSON-Dokument kann über den Schalter "XML-/JSON-Daten sichern" im Speicher gehalten und in weiteren Einstellungen-Befehlen mehrfach ausgewertet oder gefüllt werden. Hierbei kann optional noch eine ID angegeben werden, unter der dieses Dokument abgelegt werden soll.
Ist ein solches gesichertes XML-Dokument (ohne ID) vorhanden, kann über den Platzhalter [cX.Einstellungen(X)] auf das Dokument oder Werte zugegriffen werden, die über den Pfad X bestimmt sind. Dieser gibt die Knotennamen (ggf. mit Wildcards) bis zum gewünschten Wert an, getrennt durch ".". Hierbei kann bei Eintragsgruppen auch ein (Index) angegeben werden.
Wird kein Pfad X angegeben, wird das gesamte XML-Dokument geliefert (s.u.) bzw. gefüllt.
Optional kann auch für X die ID eines gesicherten XML-Dokuments angegeben werden. In diesem Fall wird das gesamte XML-Dokument geliefert bzw. gesetzt.
Um ein XML- bzw. JSON-Dokument direkt zu erstellen, kann unter "Datenquelle" ein XML- bzw. JSON-Text angegeben werden (auch hier ist die Bearbeitungsfunktion per F7 hilfreich).
Neben einer direkten Angabe von XML- oder JSON-Quelltext kann auch dessen Struktur durch eine einfache hierarchische Liste dort angegeben werden, aus der dann ein XML- bzw. JSON-Dokument erstellt wird. Hierbei werden die Knotennamen und ggf. -Werte (mit "=" getrennt) untereinander angegeben, wobei die hierarchische Zuordnung dabei durch Einrückungen per Minuszeichen "-" erfolgt.
Ein Beispiel:
root
-elemente
--element=Text1
--element=Text2
---unterelement=Text2a
---unterelement=Text2b
-sonst=Weitere Inhalte
Dies ergibt je nach Einstellung bei "Typ" in der angegebenen Variablen (ohne die Umbrüche/Einrückungen, welche hier nur für die bessere Lesbarkeit hinzugefügt sind):
XML:
<root>
<elemente>
<element>Text1</element>
<element>Text2<unterelement>Text2a</unterelement>
<unterelement>Text2b</unterelement>
</element>
</elemente>
<sonst>Weitere Inhalte</sonst>
</root>
JSON:
{
"root": {
"elemente": {
"element": ["Text1", {
"unterelement": ["Text2a", "Text2b"],
"value": "Text2"
}
]
},
"sonst": "Weitere Inhalte"
}
}
Aus diesen Daten können dann (sofern "XML/JSON-Daten sichern" aktiviert ist) mit weiteren Einstellungen-Befehlen Einzeldaten herausgelesen werden.
Ist beispielsweise als "Pfad"
root\elemente\element(2)\Unterelement(1)
angegeben, wird der Eintrag "Text2a" geliefert, also vom 2. "element"-Eintrag der erste "Unterelement"-Wert.
Wird als Modus eine der XML/JSON-Formatierungsoptionen gewählt, wird in die Ergebnisvariable eine gut lesbare bzw. eine möglichst kompakte Darstellung des XML- bzw. JSON-Ergebnisses geschrieben.
cX-Webseite: http://www.clickexe.net