2017-02-15 3 views
0

In einem verwandten Beitrag, How to select specified node within Xpath node sets by index with Selenium?, wird erwähnt, dass es "kein Index i in XPath" gibt. Ich versuche einen Index in einer R-Schleife innerhalb eines XPath-Ausdrucks zu verwenden, wie beispielsweiseIndex im Xpath Ausdruck

getNodeSet(xmlfile, '//first[i]/second/third') 

klar, nach dem obigen Posten es perfekt funktioniert, wenn ‚i‘ mit ‚1‘ ersetzt, nicht aber z.B. für i <- 1. Die Problemumgehung in dem obigen Post (d. H. Unter Verwendung von ['+i+']) scheint jedoch nicht zu funktionieren. Haben Sie Ideen zum Erstellen von Indizes in XPath-Ausdrücken?

Antwort

2

'//first[i]/second/third' ist nur eine Zeichenfolge. Daher können Sie die R-String-Building-Funktion paste0() verwenden, um Ihre eigenen zu erstellen (R verwendet nicht + für String-Verkettung).

getNodeSet(xmlfile, paste0('//first[', i, ']/second/third')) 
+1

Oder alternativ mit 'sprintf' könnten Sie tun:' sprintf ('// erste [% d]/Sekunde/dritte', i) ' – Rentrop