コード例 #1
0
ファイル: attr.php プロジェクト: tokushima/rhaco3
<?php

$x = new \org\rhaco\Xml("test");
$x->attr("abc", 123);
eq("123", $x->in_attr("abc"));
eq(null, $x->in_attr("def"));
eq("456", $x->in_attr("ghi", 456));
$x->attr("def", "'<>'");
$x->escape(true);
eq("&#039;&lt;&gt;&#039;", $x->in_attr("def"));
eq('<test abc="123" def="&#039;&lt;&gt;&#039;" />', $x->get());
$x->escape(false);
eq("'<>'", $x->in_attr("def"));
eq('<test abc="123" def="\'<>\'" />', $x->get());
$x = new \org\rhaco\Xml("test");
$x->attr("abc", 123);
$x->attr("def", 456);
$x->attr("ghi", 789);
eq(array("abc" => 123, "def" => 456, "ghi" => 789), iterator_to_array($x));
$x->rm_attr("def");
eq(array("abc" => 123, "ghi" => 789), iterator_to_array($x));
$x->attr("def", 456);
eq(array("abc" => 123, "ghi" => 789, "def" => 456), iterator_to_array($x));
$x->rm_attr("abc", "ghi");
eq(array("def" => 456), iterator_to_array($x));
$x = new \org\rhaco\Xml("test");
eq(false, $x->is_attr("abc"));
$x->attr("abc", 123);
eq(true, $x->is_attr("abc"));
$x->attr("abc", null);
eq(true, $x->is_attr("abc"));
コード例 #2
0
ファイル: value.php プロジェクト: tokushima/rhaco3
eq("true", $xml->value(true));
eq("false", $xml->value(false));
eq("<abc>1</abc><def>2</def><ghi>3</ghi>", $xml->value(array("abc" => 1, "def" => 2, "ghi" => 3)));
eq(null, $xml->value(''));
eq(1, $xml->value('1'));
eq(null, $xml->value(null));
$xml->escape(true);
eq("<abc>123</abc>", $xml->value("<abc>123</abc>"));
eq("<b>123</b>", $xml->value(new \org\rhaco\Xml("b", "123")));
$xml = new \org\rhaco\Xml("test");
$xml->escape(false);
eq("<abc>123</abc>", $xml->value("<abc>123</abc>", false));
$obj = new \org\rhaco\Request();
$obj->rm_vars();
$obj->vars('aaa', 'hoge');
$obj->vars('ccc', 123);
$xml = new \org\rhaco\Xml('abc', $obj);
eq('<abc><aaa>hoge</aaa><ccc>123</ccc></abc>', $xml->get());
$xml = new \org\rhaco\Xml("test");
$add = new \org\rhaco\Xml("addxml", "hoge");
$xml->add($add);
$xml->add($add->get());
$xml->add((string) $add);
eq('<test><addxml>hoge</addxml><![CDATA[<addxml>hoge</addxml>]]><![CDATA[<addxml>hoge</addxml>]]></test>', $xml->get());
$xml = new \org\rhaco\Xml("test");
$add = new \org\rhaco\Xml("addxml", "hoge");
$xml->add($add);
$xml->add($add->get());
$xml->add((string) $add);
eq('<test><addxml>hoge</addxml><![CDATA[<addxml>hoge</addxml>]]><![CDATA[<addxml>hoge</addxml>]]></test>', $xml->get());
コード例 #3
0
ファイル: Atom.php プロジェクト: tokushima/rhaco3
 protected function __str__()
 {
     $result = new \org\rhaco\Xml('feed');
     $result->attr('xmlns', self::XMLNS);
     foreach ($this->ar_xmlns() as $ns => $url) {
         $result->attr('xmlns:' . $ns, $url);
     }
     foreach ($this->props() as $name => $value) {
         if (!empty($value)) {
             switch ($name) {
                 case 'title':
                 case 'subtitle':
                 case 'id':
                 case 'generator':
                     $result->add(new \org\rhaco\Xml($name, $value));
                     break;
                 case 'updated':
                     $result->add(new \org\rhaco\Xml($name, \org\rhaco\lang\Date::format_atom($value)));
                     break;
                 default:
                     if (is_array($value)) {
                         foreach ($value as $v) {
                             try {
                                 $result->add($v instanceof \org\rhaco\net\xml\atom\Object ? $v->xml() : $v);
                             } catch (\org\rhaco\net\xml\atom\NotfoundException $e) {
                             }
                         }
                     }
             }
         }
     }
     return $result->get();
 }
コード例 #4
0
ファイル: object.php プロジェクト: tokushima/rhaco3
<?php

$obj = new \test\model\XmlModel();
$self = new \org\rhaco\Xml('abc', $obj);
eq('<abc><aaa>hoge</aaa><ccc>123</ccc></abc>', $self->get());
$e = explode('\\', get_class($obj));
$n = array_pop($e);
$obj1 = clone $obj;
$obj2 = clone $obj;
$obj3 = clone $obj;
$obj2->ccc(456);
$obj3->ccc(789);
$arr = array($obj1, $obj2, $obj3);
$self = new \org\rhaco\Xml('abc', $arr);
eq(sprintf('<abc>' . '<%s><aaa>hoge</aaa><ccc>123</ccc></%s>' . '<%s><aaa>hoge</aaa><ccc>456</ccc></%s>' . '<%s><aaa>hoge</aaa><ccc>789</ccc></%s>' . '</abc>', $n, $n, $n, $n, $n, $n), $self->get());
コード例 #5
0
ファイル: get.php プロジェクト: tokushima/rhaco3
<?php

$x = new \org\rhaco\Xml("test", 123);
eq("<test>123</test>", $x->get());
$x = new \org\rhaco\Xml("test", new \org\rhaco\Xml("hoge", "AAA"));
eq("<test><hoge>AAA</hoge></test>", $x->get());
$x = new \org\rhaco\Xml("test");
eq("<test />", $x->get());
$x = new \org\rhaco\Xml("test");
$x->close_empty(false);
eq("<test></test>", $x->get());
$x = new \org\rhaco\Xml("test");
$x->attr("abc", 123);
$x->attr("def", 456);
eq('<test abc="123" def="456" />', $x->get());