class REXML::Parsers::PullEvent

一个解析事件。事件的内容以 +Array?+ 的形式访问,类型可以通过 …? 方法或访问 type 访问器给出。此对象的内容因事件而异,但与传递给每个事件的 +StreamListener+ 的参数相同。

公共类方法

new(arg) 点击切换源代码

此事件的类型。 将是以下之一::tag_start、:tag_end、:text、:processing_instruction、:comment、:doctype、:attlistdecl、:entitydecl、:notationdecl、:entity、:cdata、:xmldecl 或 :error。

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 111
def initialize(arg)
  @contents = arg
end

公共实例方法

[]( start, endd=nil) 点击切换源代码
# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 115
def []( start, endd=nil)
  if start.kind_of? Range
    @contents.slice( start.begin+1 .. start.end )
  elsif start.kind_of? Numeric
    if endd.nil?
      @contents.slice( start+1 )
    else
      @contents.slice( start+1, endd )
    end
  else
    raise "Illegal argument #{start.inspect} (#{start.class})"
  end
end
attlistdecl?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 164
def attlistdecl?
  @contents[0] == :attlistdecl
end
cdata?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 195
def cdata?
  @contents[0] == :cdata
end
comment?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 154
def comment?
  @contents[0] == :comment
end
doctype?() 点击切换源代码

内容:[ 字符串 name, 字符串 pub_sys, 字符串 long_name, 字符串 uri ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 159
def doctype?
  @contents[0] == :start_doctype
end
elementdecl?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 169
def elementdecl?
  @contents[0] == :elementdecl
end
end_element?() 点击切换源代码

内容:[ 字符串 tag_name ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 139
def end_element?
  @contents[0] == :end_element
end
entity?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 190
def entity?
  @contents[0] == :entity
end
entitydecl?() 点击切换源代码

由于 DTD 的奇妙之处,实体声明几乎可以是任何东西。没有办法对其进行规范化;您必须自己解释内容。但是,以下情况是真实的

  • 如果实体声明是一个内部实体

    字符串 name,字符串 value

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 180
def entitydecl?
  @contents[0] == :entitydecl
end
error?() 点击切换源代码
# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 204
def error?
  @contents[0] == :error
end
event_type() 点击切换源代码
# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 129
def event_type
  @contents[0]
end
inspect() 点击切换源代码
# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 208
def inspect
  @contents[0].to_s + ": " + @contents[1..-1].inspect
end
instruction?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 149
def instruction?
  @contents[0] == :processing_instruction
end
notationdecl?() 点击切换源代码

内容:[ 字符串 text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 185
def notationdecl?
  @contents[0] == :notationdecl
end
start_element?() 点击切换源代码

内容:[ 字符串 tag_name, 哈希 attributes ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 134
def start_element?
  @contents[0] == :start_element
end
text?() 点击切换源代码

内容:[ 字符串 raw_text,字符串 unnormalized_text ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 144
def text?
  @contents[0] == :text
end
xmldecl?() 点击切换源代码

内容:[ 字符串 version,字符串 encoding,字符串 standalone ]

# File rexml-3.4.0/lib/rexml/parsers/pullparser.rb, line 200
def xmldecl?
  @contents[0] == :xmldecl
end