class REXML::XMLDecl

需要文档

常量

DEFAULT_ENCODING
DEFAULT_STANDALONE
DEFAULT_VERSION
START
STOP

属性

stand_alone?[RW]
standalone[RW]
version[RW]
writeencoding[R]
writethis[R]

公共类方法

default() 点击切换源代码

仅当您不希望写入 XML 声明时才使用此方法;此对象会被 XML 写入器忽略。否则,请实例化您自己的 XMLDecl 并将其添加到文档中。

请注意,XML 1.1 文档 必须包含 XML 声明

# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 92
def XMLDecl.default
  rv = XMLDecl.new( "1.0" )
  rv.nowrite
  rv
end
new(version=DEFAULT_VERSION, encoding=nil, standalone=nil) 点击切换源代码
调用父类方法 REXML::Child::new
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 20
def initialize(version=DEFAULT_VERSION, encoding=nil, standalone=nil)
  @writethis = true
  @writeencoding = !encoding.nil?
  if version.kind_of? XMLDecl
    super()
    @version = version.version
    self.encoding = version.encoding
    @writeencoding = version.writeencoding
    @standalone = version.standalone
    @writethis = version.writethis
  else
    super()
    @version = version
    self.encoding = encoding
    @standalone = standalone
  end
  @version = DEFAULT_VERSION if @version.nil?
end

公共实例方法

==( other ) 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 56
def ==( other )
  other.kind_of?(XMLDecl) and
  other.version == @version and
  other.encoding == self.encoding and
  other.standalone == @standalone
end
clone() 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 39
def clone
  XMLDecl.new(self)
end
dowrite() 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 102
def dowrite
  @writethis = true
end
encoding=( enc ) 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 76
def encoding=( enc )
  if enc.nil?
    self.old_enc = "UTF-8"
    @writeencoding = false
  else
    self.old_enc = enc
    @writeencoding = true
  end
  self.dowrite
end
也别名为: old_enc=
inspect() 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 106
def inspect
  "#{START} ... #{STOP}"
end
node_type() 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 69
def node_type
  :xmldecl
end
nowrite() 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 98
def nowrite
  @writethis = false
end
old_enc=( enc )
别名为: encoding=
write(writer, indent=-1, transitive=false, ie_hack=false) 点击切换源代码
indent

忽略。XML 声明之前不能有空格

transitive

忽略

ie_hack

忽略

# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 49
def write(writer, indent=-1, transitive=false, ie_hack=false)
  return nil unless @writethis or writer.kind_of? Output
  writer << START
  writer << " #{content encoding}"
  writer << STOP
end
xmldecl(version, encoding, standalone) 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 63
def xmldecl version, encoding, standalone
  @version = version
  self.encoding = encoding
  @standalone = standalone
end

私有实例方法

content(enc) 点击切换源代码
# File rexml-3.4.0/lib/rexml/xmldecl.rb, line 111
def content(enc)
  context = nil
  context = parent.context if parent
  if context and context[:prologue_quote] == :quote
    quote = "\""
  else
    quote = "'"
  end

  rv = "version=#{quote}#{@version}#{quote}"
  if @writeencoding or enc !~ /\Autf-8\z/i
    rv << " encoding=#{quote}#{enc}#{quote}"
  end
  if @standalone
    rv << " standalone=#{quote}#{@standalone}#{quote}"
  end
  rv
end