Auslesen von Attributwerten und filtern von Einträgen

Auslesen von Attributwerten und filtern von Einträgen

In diesem Beispiel werden einzelne Attributwerte (id, firstname, lastname) ausgelesen. Ausserdem werden Einträge über Funktionen gefiltert.
xml-Datei:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<Document>
  <SalDocs>
    <SalDoc id="100" >
      <Customer id="2020" firstname="Roman" lastname="Vonwil"/>
      <Items>
        <Item>
          <ArtNo>A-100</ArtNo>
          <Quantity>250</Quantity>
        </Item>
        <Item>
          <ArtNo>B-100</ArtNo>
          <Quantity>15</Quantity>
        </Item>
      </Items>
    </SalDoc>
    <SalDoc id="200" >
      <Customer id="1044" firstname="Martin" lastname="Schild"/>
      <Items>
        <Item>
          <ArtNo>B-250</ArtNo>
          <Quantity>5</Quantity>
        </Item>
        <Item>
          <ArtNo>B-270</ArtNo>
          <Quantity>15</Quantity>
        </Item>
      </Items>
    </SalDoc>
    <SalDoc id="300" >
      <Customer id="73" firstname="Ueli" lastname="Amstutz"/>
      <Items>
        <Item>
          <ArtNo>100.1A</ArtNo>
          <Quantity>10</Quantity>
        </Item>
        <Item>
          <ArtNo>100.1B</ArtNo>
          <Quantity>110</Quantity>
        </Item>
      </Items>
    </SalDoc>
  </SalDocs>
</Document>
Request für das Kopieren und Ausführen in der OpaccOXAS LiveDocumentation:
Common.XmlQuery
SourceFile=example1.xml
Rows=/Document/SalDocs/SalDoc/Customer[@id!="2020"]/../Items/Item
Column=SalDoc.CustNo,../../Customer/@id
Column=Addr.FirstName,../../Customer/@firstname
Column=Addr.LastName,../../Customer/@lastname
Column=SalDocItem.ArtNo,ArtNo/text()
Column=SalDocItem.Quantity,Quantity/text()
Abfrage mit Resultat: (id 2020 wird ausgefiltert bzw. nicht ausgegeben)
xmlQuery_09a.jpg
Request für das Kopieren und Ausführen in der OpaccOXAS LiveDocumentation:
Common.XmlQuery
SourceFile=example1.xml
Rows=/Document/SalDocs/SalDoc/Items/Item/Quantity[text()>100]
Column=SalDoc.CustNo,../../../Customer/@id
Column=Addr.FirstName,../../../Customer/@firstname
Column=Addr.LastName,../../../Customer/@lastname
Column=SalDocItem.ArtNo,../ArtNo/text()
Column=SalDocItem.Quantity,../Quantity/text()
Abfrage mit Resultat: (Nur Mengen >100 ausgeben)
xmlQuery_09b.jpg