R とパッケージ XML を使用して、巨大な XML ファイルを解析しています。今必要なデータ処理の一部として、ノードの長いリストで、各ノードが持つ特定の名前の子の数 (ノードの数は 20.000 を超える可能性があります)
現時点での私のアプローチは次のとおりです。
nChildrenWithName <- xpathSApply(doc, path="/path/to/node/*", namespaces=ns, xmlName) == 'NAME'
nChildren <- xpathSApply(doc, path="/path/to/node", namespaces=ns, fun=xmlSize)
nID <- sapply(split(nChildrenWithName, rep(seq(along=nChildren), nChildren)), sum)
これは可能な限りベクトル化されています。それでも、正しい XPATH 式を使用して 1 回の呼び出しでこれを達成できると感じています。ただし、XPATHに関する私の知識は限られているため、その方法を知っている人がいれば、洞察に感謝します...
最高のトーマス