Sets the previous sibling of this child. This can be used to insert a child before some other child.
a = Element.new("a") b = a.add_element("b") c = Element.new("c") b.previous_sibling = c # => <a><b/><c/></a>
According to the XML
spec, a root node has no expanded name
@return the XMLDecl
standalone value of this document as a String. If no XMLDecl
has been set, returns the default setting.
Adds a namespace to this element.
the prefix string, or the namespace URI
if uri
is not supplied
the namespace URI
. May be nil, in which prefix
is used as the URI
Evaluates to: this Element
a = Element.new("a") a.add_namespace("xmlns:foo", "bar" ) a.add_namespace("foo", "bar") # shorthand for previous line a.add_namespace("twiddle") puts a #-> <a xmlns:foo='bar' xmlns='twiddle'/>
Removes a namespace from this node. This only works if the namespace is actually declared in this node. If no argument is passed, deletes the default namespace.
Evaluates to: this element
doc = Document.new "<a xmlns:foo='bar' xmlns='twiddle'/>" doc.root.delete_namespace puts doc # -> <a xmlns:foo='bar'/> doc.root.delete_namespace 'foo' puts doc # -> <a/>
Returns the previous sibling that is an element, or nil if there is no Element
sibling prior to this one
doc = Document.new '<a><b/>text<c/></a>' doc.root.elements['c'].previous_element #-> <b/> doc.root.elements['b'].previous_element #-> nil
Deeply clones this object. This creates a complete duplicate of this Parent
, including all descendants.
Returns a String namespace for a node, given a prefix The rules are:
1. Use the supplied namespace mapping first. 2. If no mapping was supplied, use the context node to look up the namespace
Reorders an array of nodes so that they are in document order It tries to do this efficiently.
FIXME: I need to get rid of this, but the issue is that most of the XPath
interpreter functions as a filter, which means that we lose context going in and out of function calls. If I knew what the index of the nodes was, I wouldn’t have to do this. Maybe add a document IDX for each node? Problems with mutable documents. Or, rewrite everything.
Returns a valid argument to make_expires
and the renewer or nil.
Given true
, nil
, or Numeric
, returns that value and nil
(no actual renewer). Otherwise it returns an expiry value from calling it.renew
and the renewer.
Notifies all registered listeners for event
of a status change of tuple
.
Checks the tuplespace to see if it needs cleaning.
Try to get the XML
associated with rss
. Return rss
if it already looks like XML
, or treat it as a URI
, or a file to get the XML
,
register uri against this name.
test if this uri is registered against this name