Exemple #1
0
 public function testIsValidTagName()
 {
     $this->assertTrue(Text::isValidTagName('name'));
     $this->assertTrue(Text::isValidTagName('_name'));
     $this->assertTrue(Text::isValidTagName('ns:name'));
     $this->assertTrue(Text::isValidTagName('year2000'));
     $this->assertTrue(Text::isValidTagName('year_2000'));
     $this->assertTrue(Text::isValidTagName('year-2000'));
     $this->assertTrue(Text::isValidTagName('year.2000'));
     $this->assertTrue(Text::isValidTagName('year 2000'));
     $this->assertFalse(Text::isValidTagName(':name'));
     $this->assertFalse(Text::isValidTagName('.name'));
     $this->assertFalse(Text::isValidTagName(' name'));
     $this->assertFalse(Text::isValidTagName('-name'));
     $this->assertFalse(Text::isValidTagName('2000'));
 }
Exemple #2
0
 public function testIsValidTagName()
 {
     $name = $this->faker->word;
     $this->assertTrue(Text::isValidTagName($name));
     $this->assertTrue(Text::isValidTagName('_' . $name));
     $this->assertTrue(Text::isValidTagName('ns:' . $name));
     $this->assertTrue(Text::isValidTagName($name . '2000'));
     $this->assertTrue(Text::isValidTagName($name . '_2000'));
     $this->assertTrue(Text::isValidTagName($name . '-2000'));
     $this->assertTrue(Text::isValidTagName($name . '.2000'));
     $this->assertTrue(Text::isValidTagName($name . ' 2000'));
     $this->assertFalse(Text::isValidTagName(':' . $name));
     $this->assertFalse(Text::isValidTagName('.' . $name));
     $this->assertFalse(Text::isValidTagName(' ' . $name));
     $this->assertFalse(Text::isValidTagName('-' . $name));
     $this->assertFalse(Text::isValidTagName(mt_rand(1, 100)));
 }
Exemple #3
0
 /**
  * Add an array to xml.
  *
  * @param  array  $array.
  * @param  string $namespace.
  * @return void
  */
 public function addArray(array $array = [], $namespace = null)
 {
     foreach ($array as $name => $param) {
         if (is_array($param) and Text::isValidTagName($name)) {
             $textValue = null;
             if (isset($param['_'])) {
                 $textValue = $param['_'];
                 unset($param['_']);
             }
             if (is_numeric(key($param))) {
                 foreach ($param as $value) {
                     if (is_array($value)) {
                         $this->addArray([$name => $value]);
                     } else {
                         $this->addChild($name, Text::boolToString($value), $namespace);
                     }
                 }
             } else {
                 $child = $this->addChild($name, Text::boolToString($textValue), $namespace);
                 foreach ($param as $key => $value) {
                     if (!Text::isValidTagName($key)) {
                         throw new Exception('Illegal character in tag name. tag: ' . $key);
                     }
                     if (is_array($value)) {
                         if (is_numeric(key($value))) {
                             foreach ($value as $k => $v) {
                                 if (is_array($v)) {
                                     $child->addArray([$key => $v]);
                                 } else {
                                     $child->addChild($key, Text::boolToString($v), $namespace);
                                 }
                             }
                         } else {
                             $child->addArray([$key => $value]);
                         }
                     } else {
                         $child->addAttribute($key, Text::boolToString($value));
                     }
                 }
             }
         } else {
             if (!Text::isValidTagName($name)) {
                 throw new Exception('Illegal character in tag name. tag: ' . $name);
             }
             $this->addChild($name, Text::boolToString($param), $namespace);
         }
     }
     return $this;
 }