当前位置: 首页>>代码示例>>PHP>>正文


PHP Reader::parseGetElements方法代码示例

本文整理汇总了PHP中Sabre\Xml\Reader::parseGetElements方法的典型用法代码示例。如果您正苦于以下问题:PHP Reader::parseGetElements方法的具体用法?PHP Reader::parseGetElements怎么用?PHP Reader::parseGetElements使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Sabre\Xml\Reader的用法示例。


在下文中一共展示了Reader::parseGetElements方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: xmlDeserialize

 /**
  * The deserialize method is called during xml parsing.
  *
  * This method is called statictly, this is because in theory this method
  * may be used as a type of constructor, or factory method.
  *
  * Often you want to return an instance of the current class, but you are
  * free to return other data as well.
  *
  * You are responsible for advancing the reader to the next element. Not
  * doing anything will result in a never-ending loop.
  *
  * If you just want to skip parsing for this element altogether, you can
  * just call $reader->next();
  *
  * $reader->parseInnerTree() will parse the entire sub-tree, and advance to
  * the next element.
  *
  * @param Reader $reader
  * @return mixed
  */
 static function xmlDeserialize(Reader $reader)
 {
     $elems = $reader->parseGetElements(['{' . Plugin::NS_CALENDARSERVER . '}set' => 'Sabre\\Xml\\Element\\KeyValue', '{' . Plugin::NS_CALENDARSERVER . '}remove' => 'Sabre\\Xml\\Element\\KeyValue']);
     $sharees = [];
     foreach ($elems as $elem) {
         switch ($elem['name']) {
             case '{' . Plugin::NS_CALENDARSERVER . '}set':
                 $sharee = $elem['value'];
                 $sumElem = '{' . Plugin::NS_CALENDARSERVER . '}summary';
                 $commonName = '{' . Plugin::NS_CALENDARSERVER . '}common-name';
                 $properties = [];
                 if (isset($sharee[$commonName])) {
                     $properties['{DAV:}displayname'] = $sharee[$commonName];
                 }
                 $access = array_key_exists('{' . Plugin::NS_CALENDARSERVER . '}read-write', $sharee) ? \Sabre\DAV\Sharing\Plugin::ACCESS_READWRITE : \Sabre\DAV\Sharing\Plugin::ACCESS_READ;
                 $sharees[] = new Sharee(['href' => $sharee['{DAV:}href'], 'properties' => $properties, 'access' => $access, 'comment' => isset($sharee[$sumElem]) ? $sharee[$sumElem] : null]);
                 break;
             case '{' . Plugin::NS_CALENDARSERVER . '}remove':
                 $sharees[] = new Sharee(['href' => $elem['value']['{DAV:}href'], 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS]);
                 break;
         }
     }
     return new self($sharees);
 }
开发者ID:BlaBlaNet,项目名称:hubzilla,代码行数:45,代码来源:Share.php

示例2: repeatingElements

/**
 * This deserializer helps you deserialize xml structures that look like
 * this:
 *
 * <collection>
 *    <item>...</item>
 *    <item>...</item>
 *    <item>...</item>
 * </collection>
 *
 * Many XML documents use  patterns like that, and this deserializer
 * allow you to get all the 'items' as an array.
 *
 * In that previous example, you would register the deserializer as such:
 *
 * $reader->elementMap['{}collection'] = function($reader) {
 *     return repeatingElements($reader, '{}item');
 * }
 *
 * The repeatingElements deserializer simply returns everything as an array.
 *
 * @param Reader $reader
 * @param string $childElementName Element name in clark-notation
 * @return array
 */
function repeatingElements(Reader $reader, $childElementName)
{
    if ($childElementName[0] !== '{') {
        $childElementName = '{}' . $childElementName;
    }
    $result = [];
    foreach ($reader->parseGetElements() as $element) {
        if ($element['name'] === $childElementName) {
            $result[] = $element['value'];
        }
    }
    return $result;
}
开发者ID:BlaBlaNet,项目名称:hubzilla,代码行数:38,代码来源:functions.php


注:本文中的Sabre\Xml\Reader::parseGetElements方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。