[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] root node with namespace
- From: "Martin (gzlist)" <gzlist googlemail com>
- To: dhk <dhkuhl optonline net>
- Cc: xml gnome org
- Subject: Re: [xml] root node with namespace
- Date: Sat, 21 Jun 2008 20:50:45 +0100
On 21/06/2008, dhk <dhkuhl optonline net> wrote:
> How is a root node created with a namespace? It seem that to make the root
> node I'd need to have a namespace to use with xmlNewNode() and to make a
> namespace I would need to call xmlNewNs() which requires a node as indicated
> in the following two functions.
>
> xmlNodePtr xmlNewNode(xmlNsPtr ns, const xmlChar *name)
>
> xmlNsPtr xmlNewNs(xmlNodePtr node, const xmlChar *href, const xmlChar
> *prefix)
>
> Which call comes first and how do you create your first node with a
> namespace?
>
> thanks,
> Dave
In general, you can create the namespace on the root element and use
that for all descendants.
I don't know the right answer for creating a prefixed-namespaced root
element, but when I ran across this chicken-and-egg thing a while back
and didn't want to get distracted looking up the answer, I did (using
the python bindings as it's easy to see what's going on, 's pretty
much the same with C):
>>> import libxml2
>>> doc = libxml2.newDoc(None)
>>> doc.newChild(None, "rootnode", None)
<xmlNode (rootnode) object at 0xcb17d8>
>>> rootnode = _
>>> rootnode.newNs("http://www.example.com/ns", "example")
<xmlNs (example) object at 0xcd08f0>
>>> ns = _
>>> rootnode.setNs(ns)
>>> print doc
<?xml version="1.0"?>
<example:rootnode xmlns:example="http://www.example.com/ns"/>
Docs for these functions:
<http://xmlsoft.org/html/libxml-tree.html#xmlNewDoc>
<http://xmlsoft.org/html/libxml-tree.html#xmlNewChild>
<http://xmlsoft.org/html/libxml-tree.html#xmlNewNs>
<http://xmlsoft.org/html/libxml-tree.html#xmlSetNs>
Martin
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]