Common.XmlQuery - Anwendung in der Praxis

"name"-Wert aus xml-Tag auslesen

Aus einem xml-Tag in Form von <E4 name="Mit Logo" code="00057030"> soll der "name"-Wert (hier im Beispiel: "Mit Logo") ausgelesen werden.
Aus einem xml-Tag in Form von <Art>755237</Art> soll der Inhalt (hier im Beispiel also die Nummer) ausgelesen werden.
Beispiel einer solchen xml-Datei:
<?xml version="1.0" encoding="utf-8"?>
<Artikel> 
  <HK name="Produkte" code="00000000"> 
    <E1  name="Sportbekleidung" code="00004000"> 
      <E2  name="Shirts grösse S bis XL" code="00004009"> 
        <E3  name="Langarmshirts und Sweatshirts" code="00004045"> 
          <E4  name="Mit Motiv" code="00004329"> 
            <Art>755147</Art> 
            <Art>755148</Art> 
            <Art>755153</Art> 
            <Art>755138</Art> 
            <Art>755156</Art> 
            <Art>755234</Art> 
            <Art>755228</Art> 
            <Art>755164</Art> 
          </E4> 
          <E4  name="uni" code="00004330"> 
            <Art>755145</Art> 
            <Art>751782</Art> 
            <Art>755248</Art> 
          </E4> 
          <E4  name="gestreift" code="00004331"> 
            <Art>755237</Art> 
            <Art>755246</Art> 
            <Art>597034</Art> 
            <Art>750151</Art> 
            <Art>752584</Art> 
            <Art>752586</Art> 
            <Art>753428</Art> 
            <Art>754773</Art> 
            <Art>754893</Art> 
            <Art>755151</Art> 
            <Art>755241</Art> 
            <Art>598460</Art> 
          </E4> 
        </E3> 
        <E3  name="T-Shirts Mit Logo oder Schrift" code="00004048"> 
          <E4  name="Mit Logo" code="00057030"> 
            <Art>591162</Art> 
            <Art>752552</Art> 
            <Art>753425</Art> 
            <Art>753449</Art> 
            <Art>754546</Art> 
            <Art>754576</Art> 
            <Art>754638</Art> 
            <Art>754646</Art> 
            <Art>754658</Art> 
          </E4> 
          <E4  name="Mit Schrift" code="00057031"> 
            <Art>755150</Art> 
            <Art>755139</Art> 
            <Art>755143</Art> 
            <Art>755144</Art> 
            <Art>755158</Art> 
            <Art>755157</Art> 
          </E4> 
        </E3> 
      </E2> 
    </E1> 
  </HK> 
</Artikel>
Auslesen des "name"-Werts bei xml-Knoten E4: Column=E4Name,../@name
Auslesen des "code"-Werts bei xml-Knoten E4: Column=E4Name,../@code
Auslesen des "name"-Werts bei xml-Knoten E3, wenn man auf bereist auf dem xml-Knoten E4 steht: Column=E4Name,../../@name
Auslesen der Nummer beim <Art>-Tag: Column=ArtNr,text()
F-Script Fragment mit den entsprechenden Argumenten:
«XSER(reqXmlQuery:addArg=SourceFile=Produkte_katalog-test.xml)»
«XSER(reqXmlQuery:addArg=Rows=/Artikel/HK/E1/E2/E3/E4/Art)»
«XSER(reqXmlQuery:addArg=Column=E3Name,../../@name)»
«XSER(reqXmlQuery:addArg=Column=E4Name,../@name)»
«XSER(reqXmlQuery:addArg=Column=E4Code,../@code)»
«XSER(reqXmlQuery:addArg=Column=ArtNr,text())»

Filter auf "code"-Wert eines xml-Tag

Aus einem xml-Tag in Form von <HK name="Themen" code="00000003"> soll der "code"-Wert als Filter verwendet werden.
Ziel ist es, nur diejenigen Artikel auszugeben welche sich innerhalb dieses xml-Tags befinden.
Beispiel einer solchen xml-Datei:
<?xml version="1.0" encoding="utf-8"?>
<Artikel> 
  <HK name="Produkte" code="00000000"> 
    <E1  name="Sportbekleidung" code="00004000"> 
      <E2  name="Shirts grösse S bis XL" code="00004009"> 
        <E3  name="Langarmshirts und Sweatshirts" code="00004045"> 
          <E4  name="Mit Motiv" code="00004329"> 
            <Art>755147</Art> 
            <Art>755148</Art> 
            <Art>755153</Art> 
            <Art>755138</Art> 
            <Art>755156</Art> 
            <Art>755234</Art> 
            <Art>755228</Art> 
            <Art>755164</Art> 
          </E4> 
          <E4  name="uni" code="00004330"> 
            <Art>755145</Art> 
            <Art>751782</Art> 
            <Art>755248</Art> 
          </E4> 
          <E4  name="gestreift" code="00004331"> 
            <Art>755237</Art> 
            <Art>755246</Art> 
            <Art>597034</Art> 
            <Art>750151</Art> 
            <Art>752584</Art> 
            <Art>752586</Art> 
            <Art>753428</Art> 
            <Art>754773</Art> 
            <Art>754893</Art> 
            <Art>755151</Art> 
            <Art>755241</Art> 
            <Art>598460</Art> 
          </E4> 
        </E3> 
        <E3  name="T-Shirts Mit Logo oder Schrift" code="00004048"> 
          <E4  name="Mit Logo" code="00057030"> 
            <Art>591162</Art> 
            <Art>752552</Art> 
            <Art>753425</Art> 
            <Art>753449</Art> 
            <Art>754546</Art> 
            <Art>754576</Art> 
            <Art>754638</Art> 
            <Art>754646</Art> 
            <Art>754658</Art> 
          </E4> 
          <E4  name="Mit Schrift" code="00057031"> 
            <Art>755150</Art> 
            <Art>755139</Art> 
            <Art>755143</Art> 
            <Art>755144</Art> 
            <Art>755158</Art> 
            <Art>755157</Art> 
          </E4> 
        </E3> 
      </E2> 
    </E1> 
  </HK>
  <HK name="Themen" code="00000003"> 
    <E1  name="Weihnachten" code="00036007"> 
      <E2  name="Geschenke-Neuheiten" code="00036010"> 
        <E3  name="Geschenke für Sie und Ihn" code="00036019"> 
          <Art>759398</Art> 
          <Art>759434</Art> 
          <Art>647255</Art> 
          <Art>759483</Art> 
          <Art>622600</Art> 
          <Art>759294</Art> 
          <Art>759348</Art> 
          <Art>639386</Art> 
          <Art>756475</Art> 
          <Art>107460</Art> 
          <Art>646805</Art> 
          <Art>647079</Art> 
          <Art>646858</Art> 
          <Art>646859</Art> 
          <Art>647084</Art> 
          <Art>647093</Art> 
          <Art>647147</Art> 
          <Art>646810</Art> 
          <Art>647113</Art> 
          <Art>646857</Art> 
          <Art>622595</Art> 
          <Art>622594</Art> 
          <Art>646809</Art> 
          <Art>647092</Art> 
          <Art>756378</Art> 
          <Art>622598</Art> 
          <Art>759297</Art> 
          <Art>107461</Art> 
          <Art>647128</Art> 
          <Art>647129</Art> 
          <Art>661991</Art> 
          <Art>622596</Art> 
          <Art>647091</Art> 
          <Art>622599</Art> 
          <Art>653852</Art> 
          <Art>647156</Art> 
          <Art>759304</Art> 
          <Art>759303</Art> 
          <Art>759309</Art> 
          <Art>759305</Art> 
          <Art>648632</Art> 
          <Art>759396</Art> 
          <Art>646798</Art> 
          <Art>759321</Art> 
          <Art>759310</Art> 
          <Art>759364</Art> 
          <Art>646823</Art> 
        </E3> 
      </E2> 
    </E1> 
  </HK>
</Artikel>
Filter auf den "code"-Wert beim xml-Knoten HK: Rows=/Artikel/HK[@code="00000003"]//Art
Auslesen des "name"-Werts bei xml-Knoten E4: Column=E4Name,../@name
Auslesen des "code"-Werts bei xml-Knoten E4: Column=E4Name,../@code
Auslesen des "name"-Werts bei xml-Knoten E3, wenn man auf bereist auf dem xml-Knoten E4 steht: Column=E4Name,../../@name
Auslesen der Nummer beim <Art>-Tag: Column=ArtNr,text()
F-Script Fragment mit den entsprechenden Argumenten:
«XSER(reqXmlQuery:addArg=SourceFile=Produkte_katalog-test.xml)»
«XSER(reqXmlQuery:addArg=Rows=/Artikel/HK[@code="00000003"]//Art)»
«XSER(reqXmlQuery:addArg=Column=E3Name,../../@name)»
«XSER(reqXmlQuery:addArg=Column=E4Name,../@name)»
«XSER(reqXmlQuery:addArg=Column=E4Code,../@code)»
«XSER(reqXmlQuery:addArg=Column=ArtNr,text())»