2016-06-10 70 views
0

我有一些這樣的XML:將列表中的值計算爲XML元素中的值。

<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> 

而像這樣的稅務代碼的列表:

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

,我需要確定代碼元素在以「線表示碼數'作爲行>行>稅碼中的值。在這個例子中,它將是2.

我明白如何找到列出的代碼之一的'行'元素的數量,但我很難找出如何甚至反過來接近它。有任何想法嗎?

感謝

+0

xml片段是在兩個單獨的文件/文件?那麼你可能需要使用XQuery。 – OldProgrammer

回答

2

使用XPath 2.0和更高版本可以使用count(/Codes/Code[. = doc('lines.xml')/lines/line/taxcode])

+1

OP可以合併兩個文件並使用xpath 1.0和count(// Codes/Code [。= // lines/line/taxcode])' – splash58