Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

OmniXML, XPath und Enumeration

  Alt 4. Okt 2018, 07:39
Moin!

Ich habe folgendes (Beispiel-) XML:

Code:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <Items
            xmlns="http://www.anywhere.com/any-api/">
            <Set>
                <Item>
                    <PropA>regtehtghstdghswgeqg</PropA>
                    <PropB>trgtegwegreqgreqgqasfg</PropB>
                </Item>
                <Item>
                    <PropA>fgsfdgagadfgsrafg</PropA>
                    <PropB>ggeqrbhtjhreznj</PropB>
                </Item>
                <Item>
                    <PropA>afgsfgsagasrfgrafg</PropA>
                    <PropB>tghrezjhernhwrbhsfdh</PropB>
                </Item>
                <Item>
                    <PropA>sgbsdsbdbsdbg</PropA>
                    <PropB>regwrekjgweltgn</PropB>
                </Item>
                <Item>
                    <PropA>thgtrghadgsdgsdfbg</PropA>
                    <PropB>dgbhtgghghwdsgbsgdb</PropB>
                </Item>
                <Item>
                    <PropA>teghzjrsfbstegsgbfg</PropA>
                    <PropB>thwrtghsdgsdbgsdfgsd</PropB>
                </Item>
                <Item>
                    <PropA>trhdfbgdbhwtghsdfbg</PropA>
                    <PropB>bnfgnjmkkrgjm</PropB>
                </Item>
            </Set>
        </Items>
    </soap:Body>
</soap:Envelope>
Jetzt würde ich gerne mit XPath arbeiten. Bei MSXML hätte folgender XPath funktioniert:
Code:
soap:Body/Items/Set/[0]/PropA
Allerdings kommt hier OmniXML zum Einsatz. Hier kann ich zwar schön mit
Code:
//Set/
abkürzen, allerdings meckert der Parser dann bei
Code:
//Set/[0]/PropA
"Invalid predicate [0]".

Grüße
Cody

EDIT: Hat sich erledigt. Kaum war die Frage geschrieben, bin ich dahinter gekommen dass der wesentliche Unterschied ist, dass MSXML bei solchen Enumerationen bei 0 beginnt und OmniXML bei 1.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 4. Okt 2018 um 07:52 Uhr)
  Mit Zitat antworten Zitat