SYNOPSISint xmlTreeClearNs(xmlNs ns)
Parameters:
ns
- the namespace to clear
Returns:
0
- success<0
- error
DESCRIPTIONxmlTreeClearNs()
clears the prefix and URI of a namespace. It is
not technically deleted, but a cleared namespace does not show up at all
in the output. It can be made to show again by setting the prefix or URI.
EXAMPLE
Given the XML document
<foo:rootNode xmlns:foo="http://www.example.com/foo"
xmlns:bar="http:/www.example.com/bar">
<foo:item>a foo-y item</foo:item>
<bar:item>a bar-y item with different flavor</bar:item>
</foo:rootNode>
and $bar
is the <bar>
element, then calling
<$ns = (xmlTreeGetNs($bar))>
<$ret = (xmlTreeClearNs($ns))>
and printing the document will give:
<foo:rootNode xmlns:foo="http://www.example.com/foo">
<foo:item>a foo-y item</foo:item>
<item>a bar-y item with different flavor</item>
</foo:rootNode>
CAVEATS
Clearing a namespace and then setting a prefix without setting a URI
will result in an XML document that is not well-formed. For example,
starting from the following XML document:
<myns:top xmlns:myns="urn:MyNamespace"/>
If you can xmlTreeClearNs()
and set the prefix to new
(via
xmlTreeSetPrefix()
), you will end up with:
<new:top/>
This not a well-formed XML document because the new
namespace
is being used without being declared.
SEE ALSOxmlTreeSetNsPrefix
,
xmlTreeSetNsURI