X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fxmloutputter.php;h=463f91be305a8d542b24e42d188589170f585cfd;hb=4160a3fb730113f3d712bd777884c4b0482f6df1;hp=528f633050570c54b939ebed2b73f513a9a63d10;hpb=7d64d8c78cfa102b91975598ef9e574d2ef14b8c;p=quix0rs-gnu-social.git diff --git a/lib/xmloutputter.php b/lib/xmloutputter.php index 528f633050..463f91be30 100644 --- a/lib/xmloutputter.php +++ b/lib/xmloutputter.php @@ -63,12 +63,15 @@ class XMLOutputter * * Initializes the wrapped XMLWriter. * - * @param string $output URL for outputting, defaults to stdout + * @param string $output URL for outputting, if null it defaults to stdout ('php://output') * @param boolean $indent Whether to indent output, default true */ - function __construct($output='php://output', $indent=null) + function __construct($output=null, $indent=null) { + if (is_null($output)) { + $output = 'php://output'; + } $this->xw = new XMLWriter(); $this->xw->openURI($output); if(is_null($indent)) { @@ -142,6 +145,15 @@ class XMLOutputter $this->elementEnd($tag); } + function elementNS(array $ns, $tag, $attrs=null, $content=null) + { + $this->elementStartNS($ns, $tag, $attrs); + if (!is_null($content)) { + $this->xw->text($content); + } + $this->elementEnd($tag); + } + /** * output a start tag for an element * @@ -169,6 +181,20 @@ class XMLOutputter } } + function elementStartNS(array $ns, $tag, $attrs=null) + { + reset($ns); // array pointer to 0 + $uri = key($ns); + $this->xw->startElementNS($ns[$uri], $tag, $uri); + if (is_array($attrs)) { + foreach ($attrs as $name => $value) { + $this->xw->writeAttribute($name, $value); + } + } else if (is_string($attrs)) { + $this->xw->writeAttribute('class', $attrs); + } + } + /** * output an end tag for an element * @@ -189,7 +215,7 @@ class XMLOutputter { static $empty_tag = array('base', 'meta', 'link', 'hr', 'br', 'param', 'img', 'area', - 'input', 'col'); + 'input', 'col', 'source'); // XXX: check namespace if (in_array($tag, $empty_tag)) { $this->xw->endElement();