Namespaces¶
XML namespaces prevent naming conflicts by qualifying element and attribute names with a URI.
Reading Namespaces¶
doc = XML::Parser.string('<root xmlns:dc="http://purl.org/dc/elements/1.1/"/>').parse
node = doc.root
node.namespaces.each do |ns|
puts "#{ns.prefix}: #{ns.href}"
end
Namespace Properties¶
ns = node.namespaces.first
ns.prefix # => "dc" (nil for default namespace)
ns.href # => "http://purl.org/dc/elements/1.1/"
Default Namespace¶
doc = XML::Parser.string('<root xmlns="http://example.com"/>').parse
ns = doc.root.namespaces.default
ns.href # => "http://example.com"
XPath with Namespaces¶
Default namespaces require a prefix when using XPath. See XPath for details.
Setting a Default Prefix¶
To simplify XPath queries on documents with a default namespace: