class Nokogiri::XML::Namespace
Attributes
Public Instance Methods
Source
# File lib/nokogiri/xml/namespace.rb, line 46 def deconstruct_keys(keys) { prefix: prefix, href: href } end
Returns a hash describing the Namespace
, to use in pattern matching.
Valid keys and their values:
-
prefix
→ (String, nil) The namespace’s prefix, ornil
if there is no prefix (e.g., default namespace). -
href
→ (String) The namespace’s URI
Example
doc = Nokogiri::XML.parse(<<~XML) <?xml version="1.0"?> <root xmlns="http://nokogiri.org/ns/default" xmlns:noko="http://nokogiri.org/ns/noko"> <child1 foo="abc" noko:bar="def"/> <noko:child2 foo="qwe" noko:bar="rty"/> </root> XML doc.root.elements.first.namespace # => #(Namespace:0x35c { href = "http://nokogiri.org/ns/default" }) doc.root.elements.first.namespace.deconstruct_keys([:prefix, :href]) # => {:prefix=>nil, :href=>"http://nokogiri.org/ns/default"} doc.root.elements.last.namespace # => #(Namespace:0x370 { # prefix = "noko", # href = "http://nokogiri.org/ns/noko" # }) doc.root.elements.last.namespace.deconstruct_keys([:prefix, :href]) # => {:prefix=>"noko", :href=>"http://nokogiri.org/ns/noko"}
Since v1.14.0
Source
static VALUE href(VALUE self) { xmlNsPtr ns; Noko_Namespace_Get_Struct(self, xmlNs, ns); if (!ns->href) { return Qnil; } return NOKOGIRI_STR_NEW2(ns->href); }
Returns the URI reference for this Namespace
.
Example
doc = Nokogiri::XML.parse(<<~XML) <?xml version="1.0"?> <root xmlns="http://nokogiri.org/ns/default" xmlns:noko="http://nokogiri.org/ns/noko"> <child1 foo="abc" noko:bar="def"/> <noko:child2 foo="qwe" noko:bar="rty"/> </root> XML doc.root.elements.first.namespace.href # => "http://nokogiri.org/ns/default" doc.root.elements.last.namespace.href # => "http://nokogiri.org/ns/noko"
Source
static VALUE prefix(VALUE self) { xmlNsPtr ns; Noko_Namespace_Get_Struct(self, xmlNs, ns); if (!ns->prefix) { return Qnil; } return NOKOGIRI_STR_NEW2(ns->prefix); }
Return the prefix for this Namespace
, or nil
if there is no prefix (e.g., default namespace).
Example
doc = Nokogiri::XML.parse(<<~XML) <?xml version="1.0"?> <root xmlns="http://nokogiri.org/ns/default" xmlns:noko="http://nokogiri.org/ns/noko"> <child1 foo="abc" noko:bar="def"/> <noko:child2 foo="qwe" noko:bar="rty"/> </root> XML doc.root.elements.first.namespace.prefix # => nil doc.root.elements.last.namespace.prefix # => "noko"