Pascal4eg / Java

 Java | Фишки и трюки

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 может здорово сократить код.