Esempio n. 1
0
 /**
  * @param string $path
  * @param bool $throw [optional]
  * @return string|null
  * @throws \Df\Core\Exception
  */
 public function descendS($path, $throw = false)
 {
     if (!isset($this->{__METHOD__}[$path])) {
         /** @var X|bool $element */
         $element = $this->e()->descend($path);
         /** @var bool $found */
         $found = !is_null($element);
         if (!$found && $throw) {
             df_error('В документе XML отсутствует путь «%s».', $path);
         }
         $this->{__METHOD__}[$path] = df_n_set($found ? df_leaf_s($element) : null);
     }
     return df_n_get($this->{__METHOD__}[$path]);
 }
Esempio n. 2
0
File: X.php Progetto: mage2pro/core
 /**
 * 2015-08-08
 * Преобразует структуру вида:
 		<СтавкиНалогов>
 			<СтавкаНалога>
 				<Наименование>НДС</Наименование>
 				<Ставка>10</Ставка>
 			</СтавкаНалога>
 		</СтавкиНалогов>
 * в массив array('НДС' => '10')
 * @used-by Df_1C_Cml2_Import_Data_Entity_Product::getTaxes()
 * @param string $path
 * @param string $keyName
 * @param string $valueName
 * @return array(string => string)
 */
 function xpathMap($path, $keyName, $valueName)
 {
     /** @var array(string => string) $result */
     $result = [];
     /** @var X[] $nodes */
     $nodes = $this->xpathA($path);
     foreach ($nodes as $node) {
         /** @var X $node */
         $result[df_leaf_sne($node->{$keyName})] = df_leaf_s($node->{$valueName});
     }
     return $result;
 }
Esempio n. 3
0
/**
 * @param CX|null $e [optional]
 * @param string $default|callable [optional]
 * @return string
 */
function df_leaf_sne(CX $e = null, $default = '')
{
    /** @var string $result */
    $result = df_leaf_s($e, $default);
    if (df_empty_string($result)) {
        df_error('Лист дерева XML должен быть непуст, однако он пуст.');
    }
    return $result;
}