• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP DOMNodeList类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中DOMNodeList的典型用法代码示例。如果您正苦于以下问题:PHP DOMNodeList类的具体用法?PHP DOMNodeList怎么用?PHP DOMNodeList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



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

示例1: _filter_empty_elements

 /**
  * Remove all empty elements
  *
  * @param DOMNodeList $DOMNodeList The list of all elements we are checking
  * @return DOMNodeList The modified list of all remaining elements
  */
 protected function _filter_empty_elements(DOMNodeList $DOMNodeList)
 {
     $NodeListIndex = 0;
     // We might reduce $DOMNodeList->length during the loop
     for ($NodeListIndex = 0; $NodeListIndex < $DOMNodeList->length; ++$NodeListIndex) {
         $DOMNode = $DOMNodeList->item($NodeListIndex);
         if (!isset($DOMNode->nodeName) || !in_array($DOMNode->nodeName, $this->_checkTagNames, true)) {
             continue;
         }
         // Climb up to make sure we’re not in an Instant Article element (which should have proper handling elsewhere)
         $parentNode = $DOMNode;
         while (isset($parentNode->nodeName) && $parentNode->nodeName != 'body') {
             if ('figure' == $parentNode->nodeName && false !== strpos($parentNode->getAttribute('class'), 'op-')) {
                 // We found an element that’s likely to be an Instant Article element
                 continue 2;
             }
             $parentNode = $parentNode->parentNode;
         }
         // Check all childnodes first
         if (is_a($DOMNode, 'DOMElement') && isset($DOMNode->childNodes) && is_a($DOMNode->childNodes, 'DOMNodeList')) {
             $this->_filter_empty_elements($DOMNode->childNodes);
         }
         if (isset($DOMNode->nodeValue) && '' == trim($DOMNode->nodeValue)) {
             if (!isset($DOMNode->childNodes) || is_null($DOMNode->childNodes) || is_a($DOMNode->childNodes, 'DOMNodeList') && !$DOMNode->childNodes->length) {
                 // If the element is an empty node, remove it. But we must have a parentNode to remove a node
                 if (is_a($DOMNode->parentNode, 'DOMElement')) {
                     $DOMNode->parentNode->removeChild($DOMNode);
                 }
             }
         }
     }
     return $DOMNodeList;
 }
开发者ID:gopinathshiva,项目名称:wordpress-vip-plugins,代码行数:39,代码来源:class-instant-articles-dom-transform-filter-emptyelements.php


示例2: iterate

 /**
  * @param DOMNodeList $nodeList
  */
 protected function iterate(DOMNodeList $nodeList)
 {
     for ($i = 0; $i < $nodeList->length; $i++) {
         $node = $nodeList->item($i);
         $this->childrenVisitor->visit($node);
     }
 }
开发者ID:Tjorriemorrie,项目名称:app,代码行数:10,代码来源:DOMNodeVisitorBase.php


示例3: getDomNodeValue

 /**
  * Get single dom node value from node list at 0-index, or null when empty result
  *
  * @param \DOMNodeList $item
  * @throws \Exception
  * @return string|null
  */
 protected function getDomNodeValue(\DOMNodeList $item)
 {
     if ($item->length == 0) {
         return null;
     }
     return $item->item(0) instanceof \DOMAttr ? trim($item->item(0)->value) : trim($item->item(0)->nodeValue);
 }
开发者ID:mishki-svami,项目名称:pa-core,代码行数:14,代码来源:ExternalTruckingAbstract.php


示例4: constructFromNodeList

 /**
  * Transforms DOMNodeList to array of posts
  *
  * @param  DOMNodeList $nodeList
  * @return void
  */
 private function constructFromNodeList(\DOMNodeList $nodeList)
 {
     for ($i = 0; $i < $nodeList->length; $i++) {
         $curentNode = $nodeList->item($i);
         if ($curentNode->nodeName == 'post') {
             $this->addPost(new Post($this->service, $curentNode));
         }
     }
 }
开发者ID:robertodormepoco,项目名称:zf2,代码行数:15,代码来源:PostList.php


示例5: _constructFromNodeList

 /**
  * Transforms DOMNodeList to array of posts
  *
  * @param  DOMNodeList $nodeList
  * @return void
  */
 private function _constructFromNodeList(DOMNodeList $nodeList)
 {
     for ($i = 0; $i < $nodeList->length; $i++) {
         $curentNode = $nodeList->item($i);
         if ($curentNode->nodeName == 'post') {
             $this->_addPost(new Zend_Service_Delicious_Post($this->_service, $curentNode));
         }
     }
 }
开发者ID:brianbui171,项目名称:website_zend_1.11,代码行数:15,代码来源:PostList.php


示例6: filterNodeListByName

 /**
  * Check if tagName from $nodes are correct depending on $name
  *
  * @param DOMNodeList $nodes to check
  * @param string      $name  to compare with tagName
  *
  * @return array of nodes with correct $name
  */
 public static function filterNodeListByName($nodes, $name)
 {
     $res = array();
     for ($i = 0; $i < $nodes->length; $i++) {
         if ($nodes->item($i)->tagName === $name) {
             $res[] = $nodes->item($i);
         }
     }
     return $res;
 }
开发者ID:inscriptionweb,项目名称:kriss_feed,代码行数:18,代码来源:Rss.php


示例7: FixXmlNodes

 /**
  * Fix a list of nodes corresponding to an array of objects.
  *
  * @param \DOMNodeList $nodeList the node list matching <var>$objects</var>
  * @param array $objects the objects array matching <var>$nodeList</var>
  * @param \DOMXPath $xpath the xpath object representing the DOM
  */
 private function FixXmlNodes(\DOMNodeList $nodeList, array $objects, \DOMXPath $xpath)
 {
     if ($nodeList->length == sizeof($objects)) {
         $i = 0;
         foreach ($objects as $object) {
             $this->FixXmlNode($nodeList->item($i), $object, $xpath);
             $i++;
         }
     }
 }
开发者ID:Katoga,项目名称:g-ads,代码行数:17,代码来源:SoapRequestXmlFixer.php


示例8: getFirstElement

 /**
  * 
  * @param DOMNodeList $nodeList
  * @return type
  */
 public static function getFirstElement($nodeList)
 {
     if ($nodeList instanceof \DOMNodeList) {
         if ($nodeList->length > 0x0) {
             return $nodeList->item(0x0);
         } else {
             return null;
         }
     }
 }
开发者ID:citypay,项目名称:php-sdk,代码行数:15,代码来源:XmlHelper.php


示例9: addNodes

 /**
  * Add all nodes from the fixtures xml document.
  *
  * If the root node is not called jcr:root, autogenerate a root node.
  *
  * @param string       $workspaceName
  * @param \DOMNodeList $nodes
  *
  * @return DBUnitFixtureXML
  */
 public function addNodes($workspaceName, \DOMNodeList $nodes)
 {
     $node = $nodes->item(0);
     if ('jcr:root' !== $node->getAttributeNS($this->namespaces['sv'], 'name')) {
         $this->addRootNode('tests');
     }
     foreach ($nodes as $node) {
         $this->addNode($workspaceName, $node);
     }
     return $this;
 }
开发者ID:jackalope,项目名称:jackalope-prismic,代码行数:21,代码来源:DBUnitFixtureXML.php


示例10: getElementByNodeName

 public static function getElementByNodeName(DOMNodeList $nodeList, $nodeName)
 {
     for ($i = 0; $i < $nodeList->length; $i++) {
         /*DOMNode*/
         $item = $nodeList->item($i);
         if (self::cleearNS($item->nodeName) == $nodeName) {
             return self::getDOMDocument($item);
         }
     }
     return null;
 }
开发者ID:sigmadesarrollo,项目名称:logisoft,代码行数:11,代码来源:XmlUtil.php


示例11: _transform_elements

 /**
  * Dispatch each element in the nodelist to the transformer
  *
  * Note that we work directly on the DOMNodeList itself. Objects are passed by ref.
  *
  * @since 0.1
  * @param DOMNodeList  $DOMNodeList  List of images
  * @return DOMNodeList  The DOMNodeList. If you want to chain.
  */
 protected function _transform_elements(DOMNodeList $DOMNodeList)
 {
     // A foreach won’t work as we are changing the elements
     for ($i = 0; $i < $DOMNodeList->length; ++$i) {
         $origLength = $DOMNodeList->length;
         $this->_transform_element($DOMNodeList->item($i));
         if ($origLength !== $DOMNodeList->length) {
             // The element is replaced by an element of another type and is no longer in the nodelist
             --$i;
         }
     }
     return $DOMNodeList;
 }
开发者ID:gopinathshiva,项目名称:wordpress-vip-plugins,代码行数:22,代码来源:class-instant-articles-dom-transform-filter.php


示例12: parseRelease

 /**
  *
  * @param DOMNodeList $node        	
  */
 private function parseRelease($node)
 {
     $extra = $node->item(3)->nodeValue;
     if (strlen($extra)) {
         list($size, $files) = explode("|", $extra);
         $size = trim($size);
         $files = trim($files);
     }
     $entry = new Release();
     $entry->release = $node->item(2)->nodeValue;
     $entry->type = $node->item(1)->nodeValue;
     $entry->date = new DateTime($node->item(0)->nodeValue, new DateTimeZone('UTC'));
     $entry->size = intval($size) * 1024 * 1024;
     // as bytes
     $entry->files = intval($files);
     $entry->nuke = $node->item(4)->nodeValue;
     return $entry;
 }
开发者ID:Rogiel,项目名称:predb,代码行数:22,代码来源:OrlyDB.php


示例13: transcodeList

 /**
  * @param \DOMNodeList $list
  * @param null $parentEvent
  */
 protected function transcodeList(\DOMNodeList $list, $parentEvent = null)
 {
     $i = 0;
     while ($node = $list->item($i)) {
         switch ($node->nodeType) {
             case XML_TEXT_NODE:
                 $event = new TranscodeTextEvent($node, $parentEvent, $i);
                 $this->transcodeTextNode($event);
                 break;
             case XML_ELEMENT_NODE:
                 $event = new TranscodeElementEvent($node, $parentEvent, $i);
                 $this->transcodeElementNode($event);
                 break;
             default:
                 // ?
         }
         $i++;
     }
 }
开发者ID:robmasters,项目名称:optimus,代码行数:23,代码来源:Transcoder.php


示例14: parseRelease

 /**
  * @param DOMNodeList $node
  */
 private function parseRelease($node)
 {
     //		$extra = $node->item(3)->nodeValue;
     //		if (strlen($extra)) {
     //			list ($size, $files) = explode("|", $extra);
     //			$size = trim($size);
     //			$files = trim($files);
     //		}
     $entry =& new Pre_Release();
     $entry->release = $node->item(1)->nodeValue;
     $entry->type = $node->item(0)->nodeValue;
     if ($node->length == 3) {
         $entry->date = strtotime(substr($node->item(2)->nodeValue, 4)) + $vbulletin->options['release_time_offset'];
     } else {
         $entry->size = intval($node->item(2)->nodeValue) * 1024 * 1024;
         //as bytes
         $entry->files = intval($files);
     }
     return $entry;
 }
开发者ID:raumfish,项目名称:predb,代码行数:23,代码来源:Pre_ScnSrc_Adapter.php


示例15: xmlToArray

 /**
  * 
  * @param DOMNodeList $elements
  * @return multitype:multitype:NULL
  */
 protected function xmlToArray($elements)
 {
     if ($elements instanceof DOMNodeList) {
         if ($elements->length == 1) {
             return $this->xmlToArray($elements->item(0));
         } else {
             $result = array();
             foreach ($elements as $element) {
                 $result[] = $this->xmlToArray($element);
             }
             return $result;
         }
     } elseif ($elements instanceof DOMNode) {
         if ($elements->hasChildNodes()) {
             $result = array();
             foreach ($elements->childNodes as $element) {
                 if ($element->nodeType != 3) {
                     if (isset($result[$element->nodeName])) {
                         if (is_array($result[$element->nodeName]) && !self::isAssociative($result[$element->nodeName])) {
                             $result[$element->nodeName][] = $this->xmlToArray($element);
                         } else {
                             $v = $result[$element->nodeName];
                             $result[$element->nodeName] = array();
                             $result[$element->nodeName][] = $v;
                             $result[$element->nodeName][] = $this->xmlToArray($element);
                         }
                     } else {
                         $result[$element->nodeName] = $this->xmlToArray($element);
                     }
                 }
             }
             if (count($result) == 0) {
                 return $elements->nodeValue;
             } else {
                 return $result;
             }
         } else {
             return $elements->nodeValue;
         }
     }
 }
开发者ID:joelsantosjunior,项目名称:wotdb,代码行数:46,代码来源:XmlPath.php


示例16: _filter_multiple_uses

 /**
  * The Instant Articles spec says we can only use each image once.
  *
  * @param DOMNodeList $DOMNodeList the list of images in the document
  * @return DOMNodeList The modified list of images in the document
  */
 protected function _filter_multiple_uses(DOMNodeList $DOMNodeList)
 {
     $used_images = array();
     $NodeListIndex = 0;
     // We’ll increase $NodeListIndex and/or reduce $DOMNodeList->length
     while ($NodeListIndex < $DOMNodeList->length) {
         $DOMNode = $DOMNodeList->item($NodeListIndex);
         $src = $DOMNode->getAttribute('src');
         // See how far up the tree we can go
         $removeDOMNode = $DOMNode;
         while ('body' != $removeDOMNode->parentNode->nodeName && 1 === $removeDOMNode->parentNode->childNodes->length) {
             $removeDOMNode = $removeDOMNode->parentNode;
         }
         // If the image is used already, remove it
         if (in_array($src, $used_images, true)) {
             // Please note that when we remove the node, $DOMNodeList->length is n-1. Our $NodeListIndex will thus point to the next item in the list.
             $removeDOMNode->parentNode->removeChild($removeDOMNode);
         }
         // Add the src to the stack so we can check for multiple uses later
         $used_images[] = $src;
         ++$NodeListIndex;
     }
     return $DOMNodeList;
 }
开发者ID:gopinathshiva,项目名称:wordpress-vip-plugins,代码行数:30,代码来源:class-instant-articles-dom-transform-filter-image.php


示例17: list

 /**
  * @param UCS $ucs
  * @param \DOMNodeList $cols
  * @param \DomXPath $xpath
  */
 function __construct($ucs, $cols, $xpath)
 {
     $this->ucs = $ucs;
     $this->contract_id = $ucs->getContractId();
     $date_str = $cols->item(0)->nodeValue;
     list($date_str) = explode("*", $date_str, 2);
     $this->date = new \DateTime($date_str);
     $this->currency = $cols->item(1)->nodeValue;
     $this->total_amount = floatval(str_replace(" ", "", $cols->item(2)->nodeValue));
     $this->total_commission = floatval(str_replace(" ", "", $cols->item(3)->nodeValue));
     $link = $cols->item(6);
     while (!$link->getAttribute("href")) {
         $link = $link->firstChild;
     }
     $this->terminals_url = UCS::URL_REPORTS . $link->getAttribute("href");
 }
开发者ID:CrackHD,项目名称:phpucssu,代码行数:21,代码来源:UCS.php


示例18: startClean

 /**
  * Start the cleaning with tags, then we move onto attributes and hrefs later
  *
  * @param \DOMNodeList $elements
  */
 protected function startClean(\DOMNodeList $elements)
 {
     // loop through all elements
     // we do this backwards so we don't skip anything if we delete a node
     // see comments at: http://php.net/manual/en/class.domnamednodemap.php
     for ($i = $elements->length - 1; $i >= 0; $i--) {
         $currentElement = $elements->item($i);
         // If the tag isn't in the whitelist, remove it and continue with next iteration
         if (!in_array($currentElement->tagName, $this->allowedTags)) {
             $currentElement->parentNode->removeChild($currentElement);
             continue;
         }
         $this->cleanAttributesOnWhitelist($currentElement);
         $this->cleanXlinkHrefs($currentElement);
         $this->cleanHrefs($currentElement);
     }
 }
开发者ID:kreynen,项目名称:elmsln,代码行数:22,代码来源:Sanitizer.php


示例19: getChapter

 /**
  * Find where to start, iterate through a list, add elements to a
  * new DomDocument, return resulting xhtml
  *
  * @param \DOMNodeList $dom_list
  * @param int $index
  * @param string $chapter_title
  *
  * @return string XHTML
  */
 protected function getChapter(\DOMNodeList $dom_list, $index, $chapter_title)
 {
     if ('' == $chapter_title) {
         $chapter_title = 'unknown';
     }
     $chapter = new \DOMDocument('1.0', 'UTF-8');
     // create a new node element
     $root = $chapter->createElement('div');
     $root->setAttribute('class', $chapter_title);
     $chapter->appendChild($root);
     // Start at the beginning if no h1 tags are found.
     // In other words...bring in the whole document.
     '__UNKNOWN__' == $chapter_title ? $i = 0 : ($i = $index);
     do {
         $node = $chapter->importNode($dom_list->item($i), true);
         $chapter->documentElement->appendChild($node);
         $i++;
         // TODO
         // This is problematic
         // DOMNodeList can be made up of DOMElement(s)
         // *and* DOMText(s) which do not have the property ->tagName
     } while (@$dom_list->item($i)->tagName != $this->tag && $i < $dom_list->length);
     // h1 tag will not be needed in the body of the html
     $h1 = $chapter->getElementsByTagName($this->tag)->item(0);
     // removeChild is quick to throw a fatal error
     if ($h1 && $this->tag == $h1->nodeName && 'div' == $h1->parentNode->nodeName) {
         $chapter->documentElement->removeChild($h1);
     }
     // hyperlinks
     $chapter = $this->addHyperlinks($chapter);
     // footnotes
     $chapter = $this->addFootnotes($chapter);
     $result = $chapter->saveHTML($chapter->documentElement);
     // appendChild brings over the namespace which is superfluous on every html element
     // the string below is from the xslt file
     // @see includes/modules/import/ooxml/xsl/docx2html.xsl
     $result = preg_replace('/xmlns="http:\\/\\/www.w3.org\\/1999\\/xhtml"/', '', $result);
     return $result;
 }
开发者ID:pressbooks,项目名称:pressbooks,代码行数:49,代码来源:class-pb-docx.php


示例20: processEntries

 public function processEntries(DOMNodeList $entries, DOMElement $feed, $source)
 {
     for ($i = 0; $i < $entries->length; $i++) {
         $entry = $entries->item($i);
         try {
             $this->processEntry($entry, $feed, $source);
         } catch (AlreadyFulfilledException $e) {
             common_debug('We already had this entry: ' . $e->getMessage());
         } catch (ServerException $e) {
             // FIXME: This should be UnknownUriException and the ActivityUtils:: findLocalObject should only test one URI
             common_log(LOG_ERR, 'Entry threw exception while processing a feed from ' . $source . ': ' . $e->getMessage());
         }
     }
 }
开发者ID:faulteh,项目名称:gnu-social,代码行数:14,代码来源:Ostatus_profile.php



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP DOMPDF类代码示例发布时间:2022-05-23
下一篇:
PHP DOMNode类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap