/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ #import #import #import #import #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpadded" #endif #import #import #import #import #import #import #ifdef __clang__ #pragma clang diagnostic pop #endif NS_ASSUME_NONNULL_BEGIN /** The exception happends if the provided XPath expession cannot be compiled because of a syntax error */ extern NSString *const FBInvalidXPathException; /** The exception happends if any internal error is triggered during XPath matching procedure */ extern NSString *const FBXPathQueryEvaluationException; @interface FBXPath : NSObject /** Returns an array of descendants matching given xpath query @param root the root element to execute XPath query for @param xpathQuery requested xpath query @return an array of descendants matching given xpath query */ + (nullable NSArray *)findMatchesIn:(XCElementSnapshot *)root xpathQuery:(NSString *)xpathQuery; /** Gets XML representation of XCElementSnapshot with all its descendants. This method generates the same representation, which is used for XPath search @param root the root element @return valid XML document as string or nil in case of failure */ + (nullable NSString *)xmlStringWithSnapshot:(XCElementSnapshot *)root; @end NS_ASSUME_NONNULL_END