Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

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:

  1. ItemNode: betreffender Knoten in XPath-Syntax

  2. FieldName: optionaler Tabellenname der Zielfelder im Feldkatalog

Die Eigenschaft .ItemNode[] kann mehrfach mit unterschiedlichen FieldName-Parametern definiert werden, wenn mehrere XML-Knoten vorhanden sind, deren Werte verschiedenen Zieltabellen zugeordnet werden sollen. Bei Weglassung des Parameters gilt der Eintrag global für alle Tabellen.

Der Pfad auf den Quellknoten, der in den Feldzuordnungen unter ProcessReadIndex[].Field[].InputName anzugeben ist, muss bei tabellarischen Daten relativ zu dem im Parameter ItemNode festgelegten Knoten definiert werden.

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: FALSE

Achtung

Bei 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>

/Document/Fields/InvoiceNo

oder z. B. auch

//InvoiceNo

<Document>
   <Fields>
      <Field Name="InvoiceNo">
         123456
      </Field>
   </Fields>
</Document>

/Document/Fields/Field[@Name='InvoiceNo']

<Document>
   <Fields>
      <Field>      
        <Name>InvoiceNo</Name>        
        <Content>123456</Content>
      </Field>
   </Fields>
</Document>

/Document/Fields/Field/Name[text()='InvoiceNo']/../Content

<Document>
   <Items>
      <Item>
         <ItemNo>1</ItemNo>
      </Item>
      <Item>
         <ItemNo>2</ItemNo>
      </Item>
   </Items>
</Document>

/Document/Items/Item/ItemNo