Indexdatenleser "Xml"
Der Indexdatenleser "Xml" ist ein generischer Indexdatenleser für XML-Dateien mit weitgehend beliebigem Aufbau.
Eigenschaft | Beschreibung |
|---|---|
ProcessReadIndex[].ItemNode[] | Teilparameter zur Definition eines XML-Knotens, der Unterelemente enthält, die jeweils eine Zeile tabellarischer Daten darstellen:
Die Eigenschaft Der Pfad auf den Quellknoten, der in den Feldzuordnungen unter |
ProcessReadIndex[].RemoveXmlNs | Wahrheitswert, ob vor dem Parsen der XML-Dateien enthaltene Namensraumangaben aus diesen entfernt werden, um damit verbundene Probleme beim Parsen zu umgehen XPath-Ausdrücke zum Referenzieren von Knoten sind dann ggf. auch ohne Namensraumpräfix anzugeben. Standardwert: AchtungBei Beibehaltung der Namensräume sind XML-Dokumente nicht lesbar, wenn diese einen Standardnamensraum (ohne Präfix) verwenden, z. B. bei dem Wurzelknoten. |
Für die Definition des Pfades eines einzulesenden XML-Knotens in der Eigenschaft .InputName ist die XPath-Syntax (XML Path Language) in Version 1.0 zu verwenden. Eine detaillierter Beschreibung der XPath-Syntax finden Sie z. B. unter https://www.w3.org/TR/xpath/.
Kurze Zusammenfassung der XPath-Syntax:
Die einzelnen XML-Knoten in dem Pfad werden per
/voneinander getrennt.Attribute werden mit einem vorangestellten
@gekennzeichnet.Knoten können mit einem Filterausdruck
[…]versehen werden, um nur Knoten mit bestimmten Attributen oder Textinhalten auszuwählen.Die Selektoren
/und//können dem XPath-Ausdruck vorangestellt werden. Mit beiden Selektoren startet die Suche am Wurzelknoten, aber mit/werden nur direkte Unterknoten gefunden. Mit//werden auch weiter entfernte Unterknoten gefunden, ohne den kompletten Pfad zu diesen ausformulieren zu müssen. Ohne diese Selektoren startet die Suche am aktuellen Knoten, wenn dieser abhängig vom Kontext ein anderer als der Wurzelknoten ist.Der Selektor
..dient der Rückwärtsnavigation zum übergeordneten Knoten.
In den folgenden Beispielen soll das Kopfdatenfeld mit der "InvoiceNo" und das Positionsdatenfeld mit der "ItemNo" gelesen werden.
Hinweis
In der Praxis sollte für "ItemNo" bevorzugt /Document/Items/Item als .ItemNode[] definiert und das Quellfeld dann über ItemNo adressiert werden.
XML-Fragment | XPath-Ausdruck |
|---|---|
<Document>
<Fields>
<InvoiceNo>123456</InvoiceNo>
</Fields>
</Document> |
oder z. B. auch
|
<Document> <Fields> <Field Name="InvoiceNo"> 123456 </Field> </Fields> </Document> |
|
<Document>
<Fields>
<Field>
<Name>InvoiceNo</Name>
<Content>123456</Content>
</Field>
</Fields>
</Document> |
|
<Document> <Items> <Item> <ItemNo>1</ItemNo> </Item> <Item> <ItemNo>2</ItemNo> </Item> </Items> </Document> |
|