// XXX: do other implied stuff here
}
- $objectEls = $entry->getElementsByTagNameNS(self::SPEC, self::OBJECT);
-
- if ($objectEls->length > 0) {
- for ($i = 0; $i < $objectEls->length; $i++) {
- $objectEl = $objectEls->item($i);
- // Only immediate children (don't slurp embedded activities' objects!)
- if ($objectEl->parentNode != $entry) {
- continue;
- }
+ // get immediate object children
+
+ $objectEls = ActivityUtils::children($entry, self::OBJECT, self::SPEC);
+
+ if (count($objectEls) > 0) {
+ foreach ($objectEls as $objectEl) {
// Special case for embedded activities
$objectType = ActivityUtils::childContent($objectEl, self::OBJECTTYPE, self::SPEC);
if (!empty($objectType) && $objectType == ActivityObject::ACTIVITY) {
}
}
+ /**
+ * Gets all immediate child elements with the given tag
+ *
+ * @param DOMElement $element element to pick at
+ * @param string $tag tag to look for
+ * @param string $namespace Namespace to look under
+ *
+ * @return array found element or null
+ */
+
+ static function children(DOMNode $element, $tag, $namespace=self::ATOM)
+ {
+ $results = array();
+
+ $els = $element->childNodes;
+
+ if (!empty($els) && $els->length > 0) {
+ for ($i = 0; $i < $els->length; $i++) {
+ $el = $els->item($i);
+ if ($el->localName == $tag && $el->namespaceURI == $namespace) {
+ $results[] = $el;
+ }
+ }
+ }
+
+ return $results;
+ }
+
/**
* Grab the text content of a DOM element child of the current element
*