【发布时间】:2019-08-25 04:20:54
【问题描述】:
我正在使用 R 中的“xml2”库来读取 xml 文件以进行数据分析。
在下面的示例xml中,如何返回子元素满足多个条件的父'row'元素?
我想选择“year”元素等于“2018”且“vehicle_type”元素等于“scooter”的“row”元素?
<rows>
<row>
<vehicle_type>scooter</vehicle_type>
<year>2018</year>
<trip_duration>358</trip_duration>
</row>
<row>
<vehicle_type>scooter</vehicle_type>
<year>2019</year>
<trip_duration>358</trip_duration>
</row>
<row>
<vehicle_type>bicycle</vehicle_type>
<year>2018</year>
<trip_duration>358</trip_duration>
</row>
</rows>
我使用了“|”符号作为 AND 运算符。但是,它返回一个错误。
这是我目前尝试的代码:
library(xml2)
library(selectr)
tripXML <- read_xml('trips-1.xml')
rows <- xml_find_all(tripXML, "//row[./year/text()='2018' | ./vehicle_type/text()='scooter']")
这是 RStudio 中的错误消息。
Error in xpath_search(x$node, x$doc, xpath = xpath, nsMap = ns, num_results = Inf) : xmlXPathEval: 3 object left on the stack
我想选择这个行值:
<row>
<vehicle_type>scooter</vehicle_type>
<year>2018</year>
<trip_duration>358</trip_duration>
</row>
希望有人能帮忙,非常感谢。
【问题讨论】: