2016-06-10 3 views
0

Ich habe einige XML wie folgt aus:Zählt Werte in einer Liste, die als Werte in XML-Elementen dargestellt werden.

<lines> 
    <line> 
    <entity>H</entity> 
    <account>1002</account> 
    <taxcode>ESCR04</taxcode> 
    </line> 
    <line> 
    <entity>H</entity> 
    <account>1003</account> 
    <taxcode>ESCR04</taxcode> 
    </line> 
    <line> 
    <entity>H</entity> 
    <account>1004</account> 
    <taxcode>ESCR04</taxcode> 
    </line> 
    <line> 
    <entity>H</entity> 
    <account>1005</account> 
    <taxcode>ESCR0</taxcode> 
    </line> 
    <line> 
    <entity>H</entity> 
    <account>1002</account> 
    <taxcode>ESCR0</taxcode> 
    </line> 
</lines> 

und eine Liste der Steuercodes wie folgt aus:

<Codes> 
    <Code>ESCR0</Code> 
    <Code>ESCR04</Code> 
    <Code>ESCR10</Code> 
    <Code>ESCR21</Code> 
    </Codes> 

Und ich brauche die Anzahl der Codeelemente in Codes zu bestimmen, die in ‚Linien dargestellt sind 'als Wert in Zeilen> Zeile> Steuercode. In diesem Beispiel wäre es 2.

Ich verstehe, wie man die Anzahl der "Linien" -Elemente mit einem der aufgelisteten Codes findet, aber ich habe Probleme herauszufinden, wie man es auch andersherum anwendet. Irgendwelche Ideen?

Dank

+0

Sind die XML-Fragmente in zwei separaten Dateien/Dokumenten? Wahrscheinlich müssen Sie dann XQuery verwenden. – OldProgrammer

Antwort

2

Mit XPath 2.0 und später können Sie count(/Codes/Code[. = doc('lines.xml')/lines/line/taxcode]) verwenden.

+1

OP kann beide Dateien zusammenführen und xpath 1.0 mit 'count (// Codes/Code [. = // lines/line/taxcode])' verwenden – splash58

Verwandte Themen