JXPath
// без JXPath
Address address = null;
Collection locations = vendor.getLocations();
Iterator it = locations.iterator();
while (it.hasNext()) {
Location location = (Location) it.next();
String zipCode = location.getAddress().getZipCode();
if (zipCode.equals("90210")) {
address = location.getAddress();
break;
}
}
// c JXPath
Address address = (Address) JXPathContext.newContext(vendor).
getValue( "locations[address/zipCode='90210']/address");
XPath (XML Path Language) — язык запросов к элементам XML-документа. Разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML. В XPath используется компактный синтаксис, отличный от принятого в XML.
Строка XPath описывает способ выбора нужных элементов из массива элементов, которые могут содержать вложенные элементы. Начинается отбор с переданного множества элементов, на каждом шаге пути отбираются элементы, соответствующие выражению шага, и в результате оказывается отобрано подмножество элементов, соответствующих данному пути.
JXPath предоставляет API для обхода графов JavaBeans, DOM и других типов объектов с использованием синтаксиса XPath.
С помощью JXPath вы можете читать и записывать свойства JavaBeans, получать и устанавливать элементы массивов, коллекций, Map, различных объектов контекста в сервлетах и т. д. Другими словами, JXPath применяет концепции XPath к альтернативным объектным моделям.
При работе со сложными структурами данных, JXPath может здорово сократить код.