Я пытаюсь найти узлы в html-документе, используя Xpath в R. В приведенном ниже коде я хотел бы знать, как вернуть NULL или NA, когда узел отсутствует:XPath in R: return NA, если узел отсутствует
library(XML)
b <- '
<bookstore specialty="novel">
<book style="autobiography">
<author>
<first-name>Joe</first-name>
<last-name>Bob</last-name>
</author>
</book>
<book style="textbook">
<author>
<first-name>Mary</first-name>
<last-name>Bob</last-name>
</author>
<author>
<first-name>Britney</first-name>
<last-name>Bob</last-name>
</author>
<price>55</price>
</book>
<book style="novel" id="myfave">
<author>
<first-name>Toni</first-name>
<last-name>Bob</last-name>
</author>
</bookstore>
'
doc2 <- htmlTreeParse(b, useInternal=T)
xpathApply(doc2, "//author/first-name", xmlValue)
например, при запуске функции xpathApply()
на автора я хотел бы получить 4 результаты, но если бы я должен был удалить один из <first-name>
узлов, я хочу, чтобы функция xpathApply
возвращать NULL или что-то иначе на его месте, я не хочу, чтобы он пропустил это. Я хочу, чтобы результат выглядел так, если я должен был удалить <first-name>Mary</first-name>
:
Joe
NA
Britney
Tony
Поддерживает ли R XPath 2.0 ? или всего 1.0? Это поможет определить лучший ответ. – LarsH
@LarsH Уже есть хорошие ответы, но FYI: из прошлых обсуждений на SO (с участием R и XPath), я считаю, что напомнить, что поддерживается только 1.0. –