def _matchNodeType?(node, ntype)
case ntype
when '#element'
return (node.nodeType == ELEMENT_NODE)
when '#pi'
return (node.nodeType == PROCESSING_INSTRUCTION_NODE)
when '#comment'
return (node.nodeType == COMMENT_NODE)
when '#text'
return (node.nodeType == TEXT_NODE ||
node.nodeType == CDATA_SECTION_NODE)
when '#cdata'
return (node.nodeType == CDATA_SECTION_NODE)
when '#all'
case node.nodeType
when ELEMENT_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE,
TEXT_NODE, CDATA_SECTION_NODE
return true
else
return false
end
when /^#/
raise "unknown node type: '#{ntype}'"
when Spec::Name
return (node.nodeType == ELEMENT_NODE && node.nodeName == ntype)
else
raise "invalid element type: '#{ntype}'"
end
end