xmpphp/xmlobj.php

79 lines
1.9 KiB
PHP
Raw Normal View History

<?php
/*
XMPPHP: The PHP XMPP Library
Copyright (C) 2008 Nathanael C. Fritz
This file is part of SleekXMPP.
XMPPHP is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
XMPPHP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with XMPPHP; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class XMLObj {
var $name;
var $ns;
var $attrs = array();
var $subs = array();
var $data = '';
function XMLObj($name, $ns='', $attrs=array(), $data='') {
$this->name = strtolower($name);
$this->ns = $ns;
if(is_array($attrs)) {
foreach($attrs as $key => $value) {
$this->attrs[strtolower($key)] = $value;
}
}
$this->data = $data;
}
function printobj($depth=0) {
print str_repeat("\t", $depth) . $this->name . " " . $this->ns . ' ' . $this->data;
print "\n";
foreach($this->subs as $sub) {
$sub->printobj($depth + 1);
}
}
function tostring($str='') {
$str .= "<{$this->name} xmlns='{$this->ns}' ";
foreach($this->attrs as $key => $value) {
if($key != 'xmlns') {
$value = htmlspecialchars($value);
$str .= "$key='$value' ";
}
}
$str .= ">";
foreach($this->subs as $sub) {
$str .= $sub->tostring();
}
$body = htmlspecialchars($this->data);
$str .= "$body</{$this->name}>";
return $str;
}
function hassub($name) {
foreach($this->subs as $sub) {
if($sub->name == $name) return True;
}
return False;
}
function sub($name, $attrs=Null, $ns=Null) {
foreach($this->subs as $sub) {
if($sub->name == $name) return $sub;
}
}
}
?>