XML-Eingabeformat:Wie summiere ich entsprechende Werte?
a.xml
<Global>
<CurrencyType>INR</CurrencyType>
<Amount>100.56</Amount>
</Global>
b.xml
<Global>
<CurrencyType>USD</CurrencyType>
<Amount>234.45</Amount>
</Global>
c.xml
<Global>
<CurrencyType>INR</CurrencyType>
<Amount>20</Amount>
</Global>
d.xml
<Global>
<CurrencyType>EUR</CurrencyType>
<Amount>450.0</Amount>
</Global>
e.xml
<Global>
<CurrencyType>DIR</CurrencyType>
<Amount>100.56</Amount>
</Global>
ich verwendet habe cts:sum
Abfrage die Anzahl Wert für verschiedenen Währungstyp hinzuzufügen. Währungs andere Werte als INR & USD als OTH modifizierte wie unten angegeben:
let $doc := all the xml files
for $currency in fn:distinct-values($doc//CurrencyType)
let $tot := cts:sum(cts:element-values(xs:QName('Amount'),(),(),
cts:element-value-query(xs:QName('Currency'),$currency)))
return if($currency eq ('INR','USD')) then concat($tot, " ", $currency)
else concat($tot, " ", 'OTH')
, die die folgende Ausgabe
120,56 INR
234,45
USD gibt450,0 OTH
100,0 OTH
Nun, ich brauche die Werte zu summieren, die gleiche Währung Werte hat. Ich muss 450.0 + 100.0 hinzufügen, um die Gesamtmenge anderer Währungswerte zu erhalten.
Könnte jemand dabei helfen?
Was ist Ihr genaues Eingabeformat? Ist es eine einzelne Zeichenfolge, XML-Daten oder etwas völlig anderes? Und wie sollte die Ausgabe aussehen? –
Ist MarkLogic 9 eine Option? Wenn nicht, welche Version von MarkLogic? –