2016-04-01 3 views

Antwort

1

können Sie string() verwenden oder noch kompakter, . statt text() richtig Element zu berücksichtigen, die keinen Text-Knoten enthält:

let $r_nodes := count(doc('test.xml')//r[. ne 'unspecified']) 
return 
    $r_nodes 
2

Sie versuchen die effektiven Stringwert zu vergleichen von die Textknoten (daher text()). Jedes leere Element hat keinen Textknoten. Anstatt also Ihre Abfrage sollte wie folgt aussehen:

let $r_nodes := count(doc('test.xml')//r[text() ne 'unspecified']) 
return 
    $r_nodes 

Auf diese Weise vergleichen Sie die effektiven Stringwert des r Element und nicht ist es Textknoten.

+0

Danke für die Bearbeitung, so wie kann ich 6 statt 4 erhalten ? –

+0

Siehe meine Antwort! Das wird dir "6" geben. – adamretter

+1

Ich denke mit string() anstelle von text() ??? Ich habe es getestet und das scheint mein Problem zu lösen. –

Verwandte Themen