/** * @internal */ static function extractObjectFeedFromNode($xmlnode) { // Process a feed and extract the objects // Does not handle hierarchy // Provides two arrays // -- one sequential array (a list) // -- one hash table indexed by objectID // and a property "numItems" that holds the total number of items available. $retval = new stdClass(); // extract total number of items $numItemsNode = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "/atom:feed/cmisra:numItems"); $retval->numItems = $numItemsNode->length ? (int) $numItemsNode->item(0)->nodeValue : -1; // set to negative value if info is not available $retval->objectList = array(); $retval->objectsById = array(); $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "/atom:feed/atom:entry"); foreach ($result as $node) { $obj = CMISRepositoryWrapper::extractObjectFromNode($node); $retval->objectsById[$obj->id] = $obj; $retval->objectList[] =& $retval->objectsById[$obj->id]; } return $retval; }
static function extractObjectFeedFromNode($xmlnode) { // Process a feed and extract the objects // Does not handle hierarchy // Provides two arrays // -- one sequential array (a list) // -- one hash table indexed by objectID $retval = new stdClass(); $retval->objectList = array(); $retval->objectsById = array(); $result = CMISRepositoryWrapper::doXQueryFromNode($xmlnode, "//atom:entry"); foreach ($result as $node) { $obj = CMISRepositoryWrapper::extractObjectFromNode($node); $retval->objectsById[$obj->id] = $obj; $retval->objectList[] =& $retval->objectsById[$obj->id]; } return $retval; }