class XML::Node
Defined in:
xml/node.crxml/node/type.cr
Constant Summary
- LOOKS_LIKE_XPATH =
/^(\.\/|\/|\.\.|\.$)/
Constructors
- .new(node : Pointer(LibXML::Attr))
Creates a new node.
- .new(node : Pointer(LibXML::Doc))
Creates a new node.
- .new(node : Pointer(LibXML::Node))
Creates a new node.
Instance Method Summary
- #==(other : Node)
Compares with other.
- #[](attribute : String) : String
Gets the attribute content for the attribute given by name.
- #[]=(name : String, value)
Sets attribute of this node to value.
- #[]?(attribute : String) : String?
Gets the attribute content for the attribute given by name.
- #attribute? : Bool
Returns
true
if this is an attribute node. - #attributes : XML::Attributes
Returns attributes of this node as an
XML::Attributes
. - #cdata? : Bool
Returns
true
if this is aCDATA
section node. - #children : XML::NodeSet
Gets the list of children for this node as a
XML::NodeSet
. - #comment?
Returns
true
if this is a comment node. - #content : String
Returns the content for this Node.
- #content=(content)
Sets the Node's content to a Text node containing string.
- #delete(name : String) : String?
Deletes attribute given by name.
- #document : XML::Node
Gets the document for this Node as a
XML::Node
. - #document? : Bool
Returns
true
if this is a Document or HTML Document node. - #element? : Bool
Returns
true
if this is an Element node. - #encoding : String?
Returns the encoding of this node's document.
- #errors : Array(XML::Error)?
Returns the list of
XML::Error
found when parsing this document. - #first_element_child : XML::Node?
Returns the first child node of this node that is an element.
- #fragment? : Bool
Returns
true
if this is a DocumentFragment. - #hash(hasher)
- #inner_text : String
Returns the content for this Node.
- #inspect(io : IO) : Nil
Returns detailed information for this node including node type, name, attributes and children.
- #name : String
Returns the name for this Node.
- #name=(name)
Sets the name for this Node.
- #namespace : Namespace?
Returns the namespace for this node or
nil
if not found. - #namespace_definitions : Array(Namespace)
Returns namespaces defined on self element directly.
- #namespace_scopes : Array(Namespace)
Returns namespaces in scope for self – those defined on self element directly or any ancestor node – as an
Array
ofXML::Namespace
objects. - #namespaces : Hash(String, String?)
- #next : XML::Node?
Returns the next sibling node or
nil
if not found. - #next_element : XML::Node?
Returns the next element node sibling or
nil
if not found. - #next_sibling : XML::Node?
Returns the next sibling node or
nil
if not found. - #object_id : UInt64
Returns the address of underlying
LibXML::Node*
in memory. - #parent : XML::Node?
Returns the parent node or
nil
if not found. - #previous : XML::Node?
Returns the previous sibling node or
nil
if not found. - #previous_element : XML::Node?
Returns the previous sibling node that is an element or
nil
if not found. - #previous_sibling : XML::Node?
Returns the previous sibling node or
nil
if not found. - #processing_instruction?
Returns
true
if this is a Processing Instruction node. - #root : XML::Node?
Returns the root node for this document or
nil
. - #text : String
Same as
#content
. - #text=(text)
Same as
#content=
. - #text? : Bool
Returns
true
if this is a Text node. - #to_s(io : IO) : Nil
Serialize this Node as XML to io using default options.
- #to_unsafe : Pointer(LibXML::Node)
Returns underlying
LibXML::Node*
instance. - #to_xml(indent : Int = 2, indent_text = " ", options : SaveOptions = SaveOptions.xml_default) : String
Serialize this Node as XML and return a
String
using default options. - #to_xml(io : IO, indent = 2, indent_text = " ", options : SaveOptions = SaveOptions.xml_default)
Serialize this Node as XML to io using default options.
- #type : XML::Node::Type
Returns the type for this Node as
XML::Node::Type
. - #unlink : Nil
Removes the node from the XML document.
- #version : String?
Returns the version of this node's document.
- #xml?
Returns
true
if this is an xml Document node. - #xpath(path, namespaces = nil, variables = nil)
Searches this node for XPath path.
- #xpath_bool(path, namespaces = nil, variables = nil)
Searches this node for XPath path and restricts the return type to
Bool
. - #xpath_float(path, namespaces = nil, variables = nil)
Searches this node for XPath path and restricts the return type to
Float64
. - #xpath_node(path, namespaces = nil, variables = nil)
Searches this node for XPath path for nodes and returns the first one.
- #xpath_nodes(path, namespaces = nil, variables = nil)
Searches this node for XPath path and restricts the return type to
NodeSet
. - #xpath_string(path, namespaces = nil, variables = nil)
Searches this node for XPath path and restricts the return type to
String
.
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new new Instance methods inherited from class Object
! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Instance Method Detail
def [](attribute : String) : StringSource
Gets the attribute content for the attribute given by name. Raises KeyError
if attribute is not found.
def []=(name : String, value)Source
Sets attribute of this node to value. Raises XML::Error
if this node does not support attributes.
def []?(attribute : String) : String?Source
Gets the attribute content for the attribute given by name. Returns nil
if attribute is not found.
def attributes : XML::AttributesSource
Returns attributes of this node as an XML::Attributes
.
def children : XML::NodeSetSource
Gets the list of children for this node as a XML::NodeSet
.
def comment?Source
Returns true
if this is a comment node.
def content : StringSource
Returns the content for this Node. An empty string is returned if the node has no content.
def content=(content)Source
Sets the Node's content to a Text node containing string. The string gets XML escaped, not interpreted as markup.
def delete(name : String) : String?Source
Deletes attribute given by name. Returns attributes value, or nil
if attribute not found.
def errors : Array(XML::Error)?Source
Returns the list of XML::Error
found when parsing this document. Returns nil
if no errors were found.
def first_element_child : XML::Node?Source
Returns the first child node of this node that is an element. Returns nil
if not found.
def hash(hasher)Source
def inspect(io : IO) : NilSource
Returns detailed information for this node including node type, name, attributes and children.
def name=(name)Source
Sets the name for this Node.
def namespace_definitions : Array(Namespace)Source
Returns namespaces defined on self element directly.
def namespace_scopes : Array(Namespace)Source
Returns namespaces in scope for self – those defined on self element directly or any ancestor node – as an Array
of XML::Namespace
objects.
Default namespaces ("xmlns="
style) for self are included in this array; Default namespaces for ancestors, however, are not.
See also #namespaces
def namespaces : Hash(String, String?)Source
Returns a Hash(String, String?) of prefix => href
for all namespaces on this node and its ancestors.
This method returns the same namespaces as #namespace_scopes
.
Returns namespaces in scope for self – those defined on self element directly or any ancestor node – as a Hash
of attribute-name/value pairs.
NOTE Note that the keys in this hash XML attributes that would be used to define this namespace, such as "xmlns:prefix"
, not just the prefix.
def previous_element : XML::Node?Source
Returns the previous sibling node that is an element or nil
if not found.
def previous_sibling : XML::Node?Source
Returns the previous sibling node or nil
if not found. Same with #previous
.
def processing_instruction?Source
Returns true
if this is a Processing Instruction node.
def to_unsafe : Pointer(LibXML::Node)Source
Returns underlying LibXML::Node*
instance.
def to_xml(indent : Int = 2, indent_text = " ", options : SaveOptions = SaveOptions.xml_default) : StringSource
Serialize this Node as XML and return a String
using default options.
See XML::SaveOptions.xml_default
for default options.
def to_xml(io : IO, indent = 2, indent_text = " ", options : SaveOptions = SaveOptions.xml_default)Source
Serialize this Node as XML to io using default options.
See XML::SaveOptions.xml_default
for default options.
def type : XML::Node::TypeSource
Returns the type for this Node as XML::Node::Type
.
def xml?Source
Returns true
if this is an xml Document node.
def xpath(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path. Returns result with appropriate type (Bool | Float64 | String | XML::NodeSet
).
Raises XML::Error
on evaluation error.
def xpath_bool(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path and restricts the return type to Bool
.
require "xml" doc = XML.parse("<person></person>") doc.xpath_bool("count(//person) > 0") # => true
def xpath_float(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path and restricts the return type to Float64
.
require "xml" doc = XML.parse("<person></person>") doc.xpath_float("count(//person)") # => 1.0
def xpath_node(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path for nodes and returns the first one. or nil
if not found
require "xml" doc = XML.parse("<person></person>") doc.xpath_node("//person") # => #<XML::Node:0x2013e80 name="person"> doc.xpath_node("//invalid") # => nil
def xpath_nodes(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path and restricts the return type to NodeSet
.
require "xml" doc = XML.parse("<person></person>") nodes = doc.xpath_nodes("//person") nodes.class # => XML::NodeSet nodes.map(&.name) # => ["person"]
def xpath_string(path, namespaces = nil, variables = nil)Source
Searches this node for XPath path and restricts the return type to String
.
require "xml" doc = XML.parse("<person></person>") doc.xpath_string("string(/persons/person[1])")
© 2012–2021 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.2.1/XML/Node.html