Class: Meteor::Ml::Xhtml4::ParserImpl
- Inherits:
-
Core::Kernel
- Object
- Parser
- Core::Kernel
- Meteor::Ml::Xhtml4::ParserImpl
- Defined in:
- lib/meteor/ml/xhtml4/parser_impl.rb
Overview
XHTML4 parser (XHTML4パーサ)
Direct Known Subclasses
Constant Summary collapse
- KAIGYO_CODE =
KAIGYO_CODE = “r?n|r”
["\r\n", "\n", "\r"]
- BR =
"<br/>"- DISABLE_ELEMENT =
DISABLE_ELEMENT = “input|textarea|select|optgroup”
- Array
-
element with disablled attribute (disabled属性のある要素)
["input", "textarea", "select", "optgroup"]
- READONLY_TYPE =
READONLY_TYPE = “text|password”
- Array
-
readonly属性のあるinput要素のタイプ
["text", "password"]
- SELECTED_M =
"\\sselected=\"[^\"]*\"\\s|\\sselected=\"[^\"]*\"$"- SELECTED_M1 =
"\\sselected=\"([^\"]*)\"\\s|\\sselected=\"([^\"]*)\"$"- SELECTED_R =
"selected=\"[^\"]*\""- SELECTED_U =
"selected=\"selected\""- CHECKED_M =
"\\schecked=\"[^\"]*\"\\s|\\schecked=\"[^\"]*\"$"- CHECKED_M1 =
"\\schecked=\"([^\"]*)\"\\s|\\schecked=\"([^\"]*)\"$"- CHECKED_R =
"checked=\"[^\"]*\""- CHECKED_U =
"checked=\"checked\""- DISABLED_M =
"\\sdisabled=\"[^\"]*\"\\s|\\sdisabled=\"[^\"]*\"$"- DISABLED_M1 =
"\\sdisabled=\"([^\"]*)\"\\s|\\sdisabled=\"([^\"]*)\"$"- DISABLED_R =
"disabled=\"[^\"]*\""- DISABLED_U =
"disabled=\"disabled\""- READONLY_M =
"\\sreadonly=\"[^\"]*\"\\s|\\sreadonly=\"[^\"]*\"$"- READONLY_M1 =
"\\sreadonly=\"([^\"]*)\"\\s|\\sreadonly=\"([^\"]*)\"$"- READONLY_R =
"readonly=\"[^\"]*\""- READONLY_U =
"readonly=\"readonly\""- MULTIPLE_M =
"\\smultiple=\"[^\"]*\"\\s|\\smultiple=\"[^\"]*\"$"- MULTIPLE_M1 =
"\\smultiple=\"([^\"]*)\"\\s|\\smultiple=\"([^\"]*)\"$"- MULTIPLE_R =
"multiple=\"[^\"]*\""- MULTIPLE_U =
"multiple=\"multiple\""- PATTERN_UNESCAPE =
"&(amp|quot|apos|gt|lt|nbsp);"- TABLE_FOR_ESCAPE_ =
@@pattern_match_tag = Regexp.new(@@match_tag) @@pattern_match_tag2 = Regexp.new(@@match_tag_2)
{ "&" => "&", "\"" => """, "'" => "'", "<" => "<", ">" => ">", " " => " " }
- TABLE_FOR_ESCAPE_CONTENT_ =
{ "&" => "&", "\"" => """, "'" => "'", "<" => "<", ">" => ">", " " => " ", "\r\n" => "<br/>", "\r" => "<br/>", "\n" => "<br/>" }
- PATTERN_ESCAPE =
"[&\"'<> ]"- PATTERN_ESCAPE_CONTENT =
"[&\"'<> \\n]"- @@match_tag_2 =
@@match_tag_2 = “textarea|option|pre”
- Array
-
改行を<br/>に変換する必要のない要素
["textarea", "option", "pre"]
- @@attr_logic =
- Array
-
論理値で指定する属性
["disabled", "readonly", "checked", "selected", "multiple"]
- @@pattern_selected_m =
Regexp.new(SELECTED_M)
- @@pattern_selected_m1 =
Regexp.new(SELECTED_M1)
- @@pattern_selected_r =
Regexp.new(SELECTED_R)
- @@pattern_checked_m =
Regexp.new(CHECKED_M)
- @@pattern_checked_m1 =
Regexp.new(CHECKED_M1)
- @@pattern_checked_r =
Regexp.new(CHECKED_R)
- @@pattern_disabled_m =
Regexp.new(DISABLED_M)
- @@pattern_disabled_m1 =
Regexp.new(DISABLED_M1)
- @@pattern_disabled_r =
Regexp.new(DISABLED_R)
- @@pattern_readonly_m =
Regexp.new(READONLY_M)
- @@pattern_readonly_m1 =
Regexp.new(READONLY_M1)
- @@pattern_readonly_r =
Regexp.new(READONLY_R)
- @@pattern_multiple_m =
Regexp.new(MULTIPLE_M)
- @@pattern_multiple_m1 =
Regexp.new(MULTIPLE_M1)
- @@pattern_multiple_r =
Regexp.new(MULTIPLE_R)
- @@pattern_unescape =
Regexp.new(PATTERN_UNESCAPE)
- @@pattern_br_2 =
Regexp.new("<br\\/>")
- @@pattern_escape =
Regexp.new(PATTERN_ESCAPE)
- @@pattern_escape_content =
Regexp.new(PATTERN_ESCAPE_CONTENT)
Constants inherited from Core::Kernel
Core::Kernel::PATTERN_FIND_1, Core::Kernel::PATTERN_FIND_2_1, Core::Kernel::PATTERN_FIND_2_2, Core::Kernel::PATTERN_FIND_2_3, Core::Kernel::PATTERN_FIND_3_1, Core::Kernel::PATTERN_FIND_3_2, Core::Kernel::PATTERN_FIND_3_3, Core::Kernel::PATTERN_FIND_4, Core::Kernel::PATTERN_FIND_5
Constants inherited from Parser
Parser::HTML, Parser::HTML4, Parser::XHTML, Parser::XHTML4, Parser::XML
Instance Attribute Summary
Attributes inherited from Core::Kernel
#doc_type, #document_hook, #element_cache, #element_hook
Instance Method Summary collapse
-
#content_type ⇒ String
get content type (コンテントタイプを取得する).
-
#initialize(*args) ⇒ ParserImpl
constructor
initializer (イニシャライザ).
-
#parse ⇒ Object
parse document (ドキュメントを解析する).
Methods inherited from Core::Kernel
#attr, #attr_map, #attrs, #character_encoding, #character_encoding=, #content, #cxtag, #document, #document=, #element, #elements, #elements_, #find, #flash, #read, #remove_attr, #remove_element, #root_element, #shadow
Constructor Details
#initialize ⇒ ParserImpl #initialize(ps) ⇒ ParserImpl
initializer (イニシャライザ)
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/meteor/ml/xhtml4/parser_impl.rb', line 108 def initialize(*args) super() @doc_type = Parser::XHTML4 case args.length when ZERO # initialize_0 when ONE initialize_1(args[0]) else raise ArgumentError end end |
Instance Method Details
#content_type ⇒ String
get content type (コンテントタイプを取得する)
165 166 167 |
# File 'lib/meteor/ml/xhtml4/parser_impl.rb', line 165 def content_type @root.content_type end |
#parse ⇒ Object
parse document (ドキュメントを解析する)
146 147 148 |
# File 'lib/meteor/ml/xhtml4/parser_impl.rb', line 146 def parse analyze_ml end |