РЕДАКТИРОВАТЬ: Я думаю, что я неправильно понял вопрос. Новый подход.
Мы используем xpathApply
, toString.XMLNode
и xmlParseString
для извлечения указанных c узлов в 2 объектах.
Разбор файла XML и извлечение узлов:
library(XML) :
doc=xmlParse("pathtoyourXML.xml")
result1=xmlParseString(toString.XMLNode(xpathApply(doc,"(//ResidentialProperty)[1]")))
result2=xmlParseString(toString.XMLNode(xpathApply(doc,"(//ResidentialProperty)[2]")))
У нас есть 2 объекта, мы оцениваем их следующим образом:
from.result1=xpathApply(result1,"//StreetAddress")
from.result2=xpathApply(result2,"//StreetAddress")
Sidenote: ваш XML недействителен. Элементы листингов не закрыты.
РЕДАКТИРОВАТЬ 2: Фактически, вы можете использовать XPathApply на ранее «извлеченном» наборе узлов:
foo=xpathApply(doc,"(//ResidentialProperty)[2]")
xpathApply(foo[[1]],"//StreetAddress")
foo
не содержит результат предыдущего Выражение xpath ((//ResidentialProperty)[2]
), но весь набор узлов XML.