xml - 使用XML和R有效地获取具有特定名称的子代数

标签 xml r xpath xml-parsing

使用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表达式在单个调用中实现。虽然我对XPATH的了解有限,所以如果有人知道如何做,我将不胜感激。

最好的托马斯

最佳答案

library(XML)
doc <- xmlTreeParse(
  system.file("exampleData", "mtcars.xml", package="XML"),
  useInternalNodes=TRUE      )
xpathApply(xmlRoot(doc),path="count(//variable)",xmlValue)

关于xml - 使用XML和R有效地获取具有特定名称的子代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15948339/

相关文章:

r - 使用 ggplot2 创建带有预先汇总数据的条形图

objective-c - 如何在Objective-C中构建Xpath查询以获取除第一个TR之外的每个TR?

java - 如何通过 selenium 和 xpath 检索雅虎搜索自动建议

java - 有什么方法可以限制 JAXB 中对象图的编码深度吗?

r - 在 SPSS 中加载 R 包

r - Shiny 的仪表板,用户身份验证

javascript - 更改 xpath 查询查询的 xml 属性的值?

android - TableLayout 放置在 ScrollView 内时被截断

xml - 是否有任何工具可以将 matroska (mkv) 与文本文件相互转换?

xml - 将编码后的标签保留在 XML::Twig 中