模块 REXML::Namespace
向对象添加命名属性。
常量
- NAMESPLIT
- NAME_WITHOUT_NAMESPACE
属性
expanded_name[R]
对象的名称,如果已设置则有效
local_name[R]
对象的名称,如果已设置则有效
name[R]
对象的名称,如果已设置则有效
prefix[RW]
对象的展开名称,如果已设置名称则有效
公共实例方法
fully_expanded_name() 点击切换源代码
完全展开名称,即使前缀未在源文件中指定。
# File rexml-3.4.0/lib/rexml/namespace.rb, line 57 def fully_expanded_name ns = prefix return "#{ns}:#@name" if ns.size > 0 return @name end
has_name?( other, ns=nil ) 点击切换源代码
比较名称,可以选择包含命名空间
# File rexml-3.4.0/lib/rexml/namespace.rb, line 43 def has_name?( other, ns=nil ) if ns return (namespace() == ns and name() == other) elsif other.include? ":" return fully_expanded_name == other else return name == other end end
name=( name ) 点击切换源代码
设置名称和展开名称
# File rexml-3.4.0/lib/rexml/namespace.rb, line 17 def name=( name ) @expanded_name = name if name.match?(NAME_WITHOUT_NAMESPACE) @prefix = "" @namespace = "" @name = name elsif name =~ NAMESPLIT if $1 @prefix = $1 else @prefix = "" @namespace = "" end @name = $2 elsif name == "" @prefix = nil @namespace = nil @name = nil else message = "name must be \#{PREFIX}:\#{LOCAL_NAME} or \#{LOCAL_NAME}: " message += "<#{name.inspect}>" raise ArgumentError, message end end