Deserialisierung mit RPA – Teil 1 XML

Was ist XML

Die Extensible Markup Language Рkurz XML Рist eine Auszeichnungssprache, die auf der Standardzeichenkodierung UTF-8 basiert und dazu dient hierarchisch strukturierte Daten als Textdatei darzustellen. XML-Dateien sind als Knoten in einer Baumstruktur organisiert. Die Knoten können je nach Hierarchiestufen als Elemente, Attribute, Verarbeitungsanweisungen, Kommentare oder Text zusammengesetzt sein. Knoten beginnen immer mit Elementen, die durch öffnende und schliessende Tags gekennzeichnet sind. Inhaltslose Elemente bestehen meistens aus einem einzigen Tag. Ein Vorteil von XML-Textdateien ist, dass diese grundsätzlich sowohl durch Menschen, als auch von Computern gelesen und interpretiert werden können.

Als Metasprache bildet XML, aufgrund struktureller und inhaltlicher Einschr√§nkungen, die Grundlage zur Definition von anwendungsspezifischen Sprachen, wie beispielsweise XHTML. Die Einschr√§nkungen werden √ľber das vorgegebene XML-Schema ausgedr√ľckt. Aufgrund dieser Eigenschaft deckt XML einen breiten Anwendungsbereich ab. So wird XML h√§ufig f√ľr den Datenaustausch zwischen plattformunabh√§ngigen Computersystemen eingesetzt. Besonders beim Datenaustausch √ľber das Internet ist XML anzutreffen, da alle herk√∂mmlichen Webbrowser mittels eines eingebauten XML-Parsers in der Lage sind XML-Dateien zu visualisieren.

Diese Ausgangslage macht die Auswertung und Verarbeitung von XML-Dateien durch RPA besonders attraktiv, da viele XML-Einsatzbereiche existieren, wodurch sich viele Anwendungsf√§lle f√ľr RPA identifizieren lassen. Die Herausforderung liegt im korrekten Auslesen der XML-Attribute und -Werte aus den Textdateien. Diese unterscheiden sich in Schema und Struktur von herk√∂mmlich durch RPA verarbeitete Dokumententypen, wie Excel, Mail, Word, etc. Mit dem Beseitigen dieser H√ľrde kann ein enormes Potenzial ausgesch√∂pft werden.

Einlesen und verarbeiten von XML-Dateien durch RPA Software

Eine XML-Textdatei wird grunds√§tzlich identisch zu einem gew√∂hnlichen Textfile eingelesen. In der von Routinuum GmbH verwendeten Automatisierungssoftware UiPath Studio wird zum Lesen der Textdatei die Aktivit√§t „Read Text File“ verwendet, die standardm√§ssig in den UiPath Studio Aktivit√§ten vorzufinden ist. Die XML-Textdatei wird vollst√§ndig eingelesen und in eine String-Variabel abgelegt. Mit der String-Variabel kann zwar die gesamte XML-Datei als Text wiedergeben werden, jedoch k√∂nnen keine einzelne Werte abgefragt werden. Um diese Problematik zu bew√§ltigen, muss das UiPath Aktivit√§ten-Paket „UiPath.WebAPI.Activities“ auf dem UiPath Studio installiert werden.

„UiPath.WebAPI.Activities“ Aktivit√§tenpaket aus dem UiPath Studio

Das Aktivit√§ten-Paket „UiPath.WebAPI.Activities“ beinhaltet unterschiedliche Aktivit√§ten zur Verarbeitung von XML- und¬† JSON-Dateien sowie Abfragen √ľber API-Schnittstellen. F√ľr die Umwandlung der XML-Datei von einer String-Variablen in eine XDocument-Variabel, die eine lesbare XML-Struktur aufweist, dient die Aktivit√§t „Deserialize XML“.

Als Input wir das XML als String-Variabel, die als Output aus der „Read Text File“ Aktivit√§t generiert wurde, eingereicht. Die „Deserialize XML“ Aktivit√§t wandelt den eingegebenen String in den Typ XDocument um und schreibt dies als Output in¬†eine XDocument-Variabel (siehe Abbildung Properties der Aktivit√§t „Deserialize XML“).

UiPath.Web.Activities.DesenaIizeXmI 
E Allgemein 
DisplayName 
E Ausgabe 
XMLDocument 
E Eingabe 
XM LString 
So nstiges 
Private 
Deserialize XML 
xm IVanabeI 
strVariabeI
Properties der Aktivit√§t „Deserialize XML“

In der XDocument-Variabel ist die XML-Datei nun in einer Struktur aufgef√ľhrt, in der spezifische Elemente, Attribute und Werte abgefragt werden k√∂nnen.

Methoden zur Abfrage von XML-Werten

Aus der XDocument-Variabel k√∂nnen alle in der XML-Textdatei enthaltenen Werte abgefragt und wiedergegeben werden. Um die einzelnen Werte abfragen zu k√∂nnen muss jedoch die Baumstruktur der XML-Datei verstanden werden und die entsprechenden Abfragemethoden m√ľssen bekannt sein.

Die folgenden Methoden dienen zur Abfrage des auszugebenden Wertes:

Element(„XName“) Wiedergibt das erste Child Element, das als „XName“ definiert ist.
Elements(„XName“) Wiedergibt eine Collection der Child Elements des Elements oder Dokuments, indem die Methode abgerufen wird. Nur diejenigen Child Elements werden aufgef√ľhrt, die mit „XName“ √ľbereinstimmen.
Descendents(„XName“) Wiedergibt eine Collection der Descendents des Elements oder Dokuments, indem die Methode abgerufen wird. Nur diejenigen Descendents werden aufgef√ľhrt, die mit „XName“ √ľbereinstimmen.
Attributes(„XName“) Wiedergibt eine Collection der Attribute des Elements oder Dokuments, indem die Methode abgerufen wird. Nur diejenigen Attribute werden aufgef√ľhrt, die dem „XName“ zugewiesen sind.

Weitere Methoden können in der Microsoft .Net Dokumentation unter folgendem Link eingesehen werden:

https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument?view=netcore-3.1#methods

XML-Werte in Datentabelle √ľberschreiben

Die unterschiedlichen Abfragemethoden k√∂nnen beispielsweise dazu angewendet werden, um die Werte der eingelesenen und deserialisierten XML-Textdatei in eine Datentabelle zu √ľbertragen. √úber For Each Schlaufen k√∂nnen die einzelnen Attributnamen und die dazugeh√∂rigen Werte in Spalten oder Kolonnen einer Datentabelle √ľberschrieben werden. Aus einer Datentabelle heraus k√∂nnen die XML-Informationen einfacher abgefragt und f√ľr weitere Use Cases angewendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.