by default, the xmlns: definition is repeated on every element.
if you do want the prefix, but dont want the xmlns: declaration repeated, set the namespace to null. dont forget to declare the namespace prefix somewhere higher in your document, though:
<?php
$w->startElementNS('foo', 'bar', 'http://example.com/foo');
$w->startElementNS('foo', 'baz', null);
$w->endElement();
$w->endElement();
?>
XMLWriter::startElementNS
xmlwriter_start_element_ns
(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
XMLWriter::startElementNS -- xmlwriter_start_element_ns — Create start namespaced element tag
Description
Object oriented style
bool XMLWriter::startElementNS
( string
$prefix
, string $name
, string $uri
)Procedural style
bool xmlwriter_start_element_ns
( resource
$xmlwriter
, string $prefix
, string $name
, string $uri
)Starts a namespaced element.
Parameters
-
xmlwriter -
Only for procedural calls. The XMLWriter resource that is being modified. This resource comes from a call to xmlwriter_open_uri() or xmlwriter_open_memory().
-
prefix -
The namespace prefix.
-
name -
The element name.
-
uri -
The namespace URI.
Return Values
Returns TRUE on success or FALSE on failure.
See Also
- XMLWriter::endElement() - End current element
- XMLWriter::writeElementNS() - Write full namespaced element tag
pike-php at kw dot nl ¶
2 years ago
anthony dot parsons at manx dot net ¶
5 years ago
If you don't want any namespace prefix at all but still want the xmlns attribute, set $prefix to null.
