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


PHP SimpleXMLIterator::getChildren方法代码示例

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


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

示例1: __construct

 /**
  * Create the ResultSet
  *
  * @param  object $result
  * @return void
  */
 public function __construct($result)
 {
     $xmlIterator = new \SimpleXMLIterator($result);
     for ($xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next()) {
         $temp = new \stdClass();
         foreach ($xmlIterator->getChildren()->attributes() as $name => $value) {
             switch ($name) {
                 case 'orderId':
                 case 'brokerTicketId':
                 case 'quantity':
                 case 'purchaseOrderId':
                     $temp->{$name} = (int) $value;
                     break;
                 case 'cost':
                     $temp->{$name} = (double) $value;
                     break;
                 case 'electronicDelivery':
                     $temp->{$name} = (bool) $value;
                     break;
                 default:
                     $temp->{$name} = (string) $value;
             }
         }
         $this->_results[] = $temp;
     }
     unset($xmlIterator, $temp, $name, $value);
 }
开发者ID:teamonetickets,项目名称:razorgator-php,代码行数:33,代码来源:AbstractResultSet.php

示例2: testChildCountDuringIteration

function testChildCountDuringIteration()
{
    $s = new SimpleXMLIterator(basicXML());
    echo "Counts of first level nodes: ";
    foreach ($s as $i => $e) {
        echo "{$i}: {$s->getChildren()->count()}, ";
    }
    echo "\n";
}
开发者ID:badlamer,项目名称:hhvm,代码行数:9,代码来源:builtin_extension_SimpleXMLIterator.php

示例3: get_elements_from_supplied_file

function get_elements_from_supplied_file($file)
{
    $found_elements = array();
    if ($xml = file_get_contents($file)) {
        //print_r($xml);
        //SimpleXMLIterator just runs over the xml and returns the elements found in this file. I think this is just top level
        //which is what I want.
        //echo $xml;
        /* Some safety against XML Injection attack
         * see: http://phpsecurity.readthedocs.org/en/latest/Injection-Attacks.html
         * 
         * Attempt a quickie detection of DOCTYPE - discard if it is present (cos it shouldn't be!)
         */
        $collapsedXML = preg_replace("/[[:space:]]/", '', $xml);
        //echo $collapsedXML;
        if (preg_match("/<!DOCTYPE/i", $collapsedXML)) {
            //throw new InvalidArgumentException(
            //     'Invalid XML: Detected use of illegal DOCTYPE'
            // );
            //echo "fail";
            return FALSE;
        }
        $loadEntities = libxml_disable_entity_loader(true);
        $dom = new DOMDocument();
        $dom->loadXML($xml);
        foreach ($dom->childNodes as $child) {
            if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) {
                throw new Exception\ValueException('Invalid XML: Detected use of illegal DOCTYPE');
                libxml_disable_entity_loader($loadEntities);
                return FALSE;
            }
        }
        libxml_disable_entity_loader($loadEntities);
        //Iterate over elements now
        if (simplexml_import_dom($dom)) {
            $xmlIterator = new SimpleXMLIterator($xml);
            for ($xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next()) {
                foreach ($xmlIterator->getChildren() as $name => $data) {
                    //echo "The $name is '$data' from the class " . get_class($data) . "\n";
                    $found_elements[] = $name;
                }
            }
        } else {
            return FALSE;
        }
    }
    return $found_elements;
}
开发者ID:rolfkleef,项目名称:IATI-Public-Validator,代码行数:48,代码来源:get_elements_from_supplied_file.php

示例4: _unserializeRecurser

 /**
  * _unserializeRecurser()
  *
  * This method will be used to traverse the depths of the structure
  * as needed to *unserialize* the profile from an xmlIterator
  *
  * @param SimpleXMLIterator $xmlIterator
  * @param Zend_Tool_Project_Profile_Resource $resource
  */
 protected function _unserializeRecurser(SimpleXMLIterator $xmlIterator, Zend_Tool_Project_Profile_Resource $resource = null)
 {
     foreach ($xmlIterator as $resourceName => $resourceData) {
         $contextName = $resourceName;
         $subResource = new Zend_Tool_Project_Profile_Resource($contextName);
         $subResource->setProfile($this->_profile);
         if ($resourceAttributes = $resourceData->attributes()) {
             $attributes = array();
             foreach ($resourceAttributes as $attrName => $attrValue) {
                 $attributes[$attrName] = (string) $attrValue;
             }
             $subResource->setAttributes($attributes);
         }
         if ($resource) {
             $resource->append($subResource, false);
         } else {
             $this->_profile->append($subResource);
         }
         if ($this->_contextRepository->isOverwritableContext($contextName) == false) {
             $subResource->initializeContext();
         }
         if ($xmlIterator->hasChildren()) {
             self::_unserializeRecurser($xmlIterator->getChildren(), $subResource);
         }
     }
 }
开发者ID:c12g,项目名称:stratos-php,代码行数:35,代码来源:Xml.php

示例5: _unserializeRecurser

 protected function _unserializeRecurser(SimpleXMLIterator $projectProfileIterator, Zend_Tool_Provider_ZfProject_ProjectContext_ProjectContextAbstract $context = null)
 {
     foreach ($projectProfileIterator as $projectProfileNodeName => $projectProfileNode) {
         $subContextClass = self::getContextByName($projectProfileNodeName);
         $subContext = new $subContextClass();
         if ($subContext->getContextName() === 'projectProfileFile') {
             $subContext->setProjectProfile($this);
         }
         if ($attributes = $projectProfileNode->attributes()) {
             foreach ($attributes as $attrName => $attrValue) {
                 $clnAttrs[$attrName] = (string) $attrValue;
             }
             $subContext->setParameters($clnAttrs);
         }
         if ($context) {
             $context->append($subContext);
         } else {
             $this->appendProjectContext($subContext);
         }
         if ($projectProfileIterator->hasChildren()) {
             self::_unserializeRecurser($projectProfileIterator->getChildren(), $subContext);
         }
     }
 }
开发者ID:jorgenils,项目名称:zend-framework,代码行数:24,代码来源:ProjectProfile.php

示例6: SimpleXMLIterator

<pre>
<?php 
$xml = <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;
$xmlIterator = new SimpleXMLIterator($xml);
//books
for ($xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next()) {
    foreach ($xmlIterator->getChildren() as $name => $data) {
        echo "The {$name} is '{$data}' from the class " . get_class($data) . "\n";
    }
    echo $xmlIterator->getName() . "\n";
    //2 times of books will be print out
}
?>
</pre>
开发者ID:pixlr,项目名称:zce-1,代码行数:22,代码来源:getChildren.php

示例7: printf

if (!$quiet) {
    printf("Done." . PHP_EOL . "Getting cash import file list ... ");
}
$files = get_files();
if (!$files) {
    unlink(COOKIE_FILE);
    die("Cannot get file list!" . PHP_EOL);
}
if (!$quiet) {
    printf("Done." . PHP_EOL);
}
$xml = new SimpleXMLIterator($files);
$xml->rewind();
while ($xml->valid()) {
    if ($xml->key() == "rows") {
        $rows = $xml->getChildren();
        $rows->rewind();
        while ($rows->valid()) {
            if ($rows->key() == "row") {
                $fileid = $filename = NULL;
                $props = $rows->getChildren();
                $props->rewind();
                while ($props->valid()) {
                    switch ($props->key()) {
                        case "id":
                            $fileid = strval($props->current());
                            break;
                        case "file_name":
                            $filename = strval($props->current());
                    }
                    $props->next();
开发者ID:Akheon23,项目名称:lms,代码行数:31,代码来源:lms-cashimport-bgz.php

示例8: SimpleXMLIterator

<?php

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2015/12/1
 * Time: 11:29
 */
$it = new SimpleXMLIterator(file_get_contents('test.xml'));
foreach ($it as $key => $node) {
    echo $key . "<br/>";
    if ($it->hasChildren()) {
        foreach ($it->getChildren() as $element => $value) {
            echo "\t" . $element . " : " . $value . "<br/>";
        }
    }
}
开发者ID:quekaihua,项目名称:StudyTest,代码行数:17,代码来源:10-17.php

示例9: getChildren

 function getChildren()
 {
     echo __METHOD__ . "\n";
     return parent::getChildren();
 }
开发者ID:badlamer,项目名称:hhvm,代码行数:5,代码来源:sxe_004.php

示例10: find

 /**
  *
  * Realiza busca no xmlRoot pelas referências de arquivo
  * @return \stdClass
  */
 public function find()
 {
     $get = self::$_config['attrs']->src->root;
     $xmlIterator = new SimpleXMLIterator(self::$_config['valueObject']->get());
     $references = "";
     for ($xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next()) {
         foreach ($xmlIterator->getChildren() as $name => $data) {
             $references .= '<reference>' . $data . '</reference>';
         }
     }
     $result = new \stdClass();
     $result->references = $references;
     return $result;
 }
开发者ID:sgdoc,项目名称:sgdoce-codigo,代码行数:19,代码来源:Tamburete.php

示例11: logError

     $strLine = '';
     logError(0, $strDescription, $strLine, 2);
     flushExit();
     exit;
 } else {
     $arrXmlSection[$strSection] = $nXmlSection;
     $nXmlSection++;
     $nXmlSectionKey = 0;
 }
 if ($bLogSetupIni) {
     // Log XML-setup section
     $strDescription = '-- XML-setup section "' . $xmlSetupIterator->key() . '"' . PHP_EOL;
     $strLine = '';
     logLog(0, $strDescription, $strLine, $nLogModeSetupXml);
 }
 foreach ($xmlSetupIterator->getChildren() as $strKey => $strValue) {
     // XML-setup element
     $strKey2 = '[' . $strKey . ']';
     $strValue = trim($strValue);
     if (isset($arrXmlSectionKey[$strSection][$strKey])) {
         // Error: duplicate XML-setup [section][key]
         $strDescription = PHP_EOL . '## error: duplicate XML-setup [section][key]: "' . PHP_EOL;
         $strLine = $strSection2 . $strKey2 . ' ##' . PHP_EOL;
         logError(0, $strDescription, $strLine, 2);
         $strDescription = '> PHP EXIT <' . PHP_EOL;
         $strLine = '';
         logError(0, $strDescription, $strLine, 2);
         flushExit();
         exit;
     } else {
         $arrXmlSectionKey[$strSection][$strKey] = $nXmlSectionKey;
开发者ID:HaakonME,项目名称:xml-analyse,代码行数:31,代码来源:13_setup-read.inc.php

示例12: _unserializeRecurser

 protected function _unserializeRecurser(SimpleXMLIterator $xmlIterator, Zend_Tool_Project_Structure_Node $node = null)
 {
     foreach ($xmlIterator as $nodeName => $nodeData) {
         $context = Zend_Tool_Project_Structure_Context_Registry::getInstance()->getContext($nodeName);
         $subNode = new Zend_Tool_Project_Structure_Node($context);
         if ($attributes = $nodeData->attributes()) {
             foreach ($attributes as $attrName => $attrValue) {
                 $method = 'set' . $attrName;
                 if (method_exists($subNode, $method)) {
                     $subNode->{$method}((string) $attrValue);
                 } elseif (method_exists($context, $method)) {
                     $context->{$method}((string) $attrValue);
                 }
             }
         }
         if (method_exists($context, 'setGraph')) {
             $context->setGraph($this->_graph);
         }
         if ($node) {
             $node->append($subNode);
         } else {
             $this->_graph->append($subNode);
         }
         if ($xmlIterator->hasChildren()) {
             self::_unserializeRecurser($xmlIterator->getChildren(), $subNode);
         }
     }
 }
开发者ID:jorgenils,项目名称:zend-framework,代码行数:28,代码来源:Xml.php


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