struct XML::Node
Defined in:
xml/node.crConstant Summary
-
LOOKS_LIKE_XPATH =
/^(\.\/|\/|\.\.|\.$)/
Class Method Summary
-
.new(node : Pointer(LibXML::Node))
Creates a new node.
-
.new(node : Pointer(LibXML::Doc))
Creates a new node.
-
.new(node : Pointer(LibXML::Attr))
Creates a new node.
Instance Method Summary
-
#==(other : Node)
Compares with other.
-
#[](attribute : String)
Gets the attribute content for the attribute given by name.
-
#[]?(attribute : String)
Gets the attribute content for the attribute given by name.
-
#attribute?
Returns true if this is an attribute node.
-
#attributes
Returns attributes of this node as an
XML::Attributes
. -
#cdata?
Returns true if this is a CDATA section node.
-
#children
Gets the list of children for this node as a
XML::NodeSet
. -
#comment?
Returns true if this is a comment node.
-
#content
Returns the content for this Node.
-
#content=(content)
Sets the Node's content to a Text node containing string.
-
#document
Gets the document for this Node as a
XML::Node
. -
#document?
Returns true if this is a Document node.
-
#element?
Returns true if this is an Element node.
-
#encoding
Returns the encoding of this node's document
-
#errors
Returns the list of
XML::Error
found when parsing this document. -
#first_element_child
Returns the first child node of this node that is an element.
-
#fragment?
Returns true if this is a DocumentFragment.
-
#hash
Returns this node's
#object_id
as the hash value. -
#inner_text
Returns the content for this Node.
-
#inspect(io)
Returns detailed information for this node including node type, name, attributes and children.
-
#name
Returns the name for this Node.
-
#name=(name)
Sets the name for this Node.
-
#namespace
Returns the namespace for this node or
nil
if not found. -
#namespace_scopes
Returns namespaces in scope for self – those defined on self element directly or any ancestor node – as an
Array
ofXML::Namespace
objects. -
#namespaces
Returns a Hash(String, String?) of prefix => href for all namespaces on this node and its ancestors.
-
#next
Returns the next sibling node or
nil
if not found. -
#next_element
Returns the next element node sibling or
nil
if not found. -
#next_sibling
Returns the next sibling node or
nil
if not found. -
#object_id
Returns the address of underlying
LibXML::Node*
in memory, -
#parent
Returns the parent node or
nil
if not found. -
#previous
Returns the previous sibling node or
nil
if not found. -
#previous_element
Returns the previous sibling node that is an element or
nil
if not found. -
#previous_sibling
Returns the previous sibling node or
nil
if not found. -
#processing_instruction?
Returns true if this is a Processing Instruction node.
-
#root
Returns the root node for this document or
nil
. -
#text
Same as
#content
. -
#text=(text)
Same as
#content=
. -
#text?
Returns true if this is a Text node.
-
#to_s(io : IO)
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)
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
Returns the type for this Node as
XML::Type
. -
#version
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 struct Struct
==(other : self) : Bool
==,
hash : Int32
hash,
inspect(io : IO) : Nil
inspect,
to_s(io)
to_s
Instance methods inherited from struct Value
==(other)
==,
dup
dup
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other)===(other : YAML::Any)
===(other : JSON::Any) ===, =~(other) =~, class class, crystal_type_id crystal_type_id, dup dup, hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml
to_yaml(io : IO) to_yaml, try(&block) try
Class methods inherited from class Object
==(other : Class)
==,
===(other)
===,
cast(other) : self
cast,
clone
clone,
dup
dup,
from_json(string_or_io) : selffrom_json(string_or_io, root : String) : self from_json, from_yaml(string : String) : self from_yaml, hash hash, inspect(io) inspect, name : String name, nilable? nilable?, to_s(io) to_s, |(other : U.class) forall U |
Class Method Detail
Instance Method Detail
Gets the attribute content for the attribute given by name. Raises KeyError
if attribute is not found.
Gets the attribute content for the attribute given by name. Returns nil
if attribute is not found.
Sets the Node's content to a Text node containing string. The string gets XML escaped, not interpreted as markup.
Returns the list of XML::Error
found when parsing this document. Returns nil
if no errors were found.
Returns the first child node of this node that is an element. Returns nil
if not found.
Returns detailed information for this node including node type, name, attributes and children.
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
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 that the keys in this hash XML attributes that would be used to define this namespace, such as "xmlns:prefix", not just the prefix.
Serialize this Node as XML to io using default options. See #to_xml
.
Serialize this Node as XML and return a String using default options.
See XML::SaveOptions.xml_default
for default options.
Serialize this Node as XML to io using default options.
See XML::SaveOptions.xml_default
for default options.
Searches this node for XPath path. Returns result with appropriate type (Bool | Float64 | String |
XML::NodeSet). Raises XML::Error
on evaluation error.
Searches this node for XPath path and restricts the return type to Bool
.
node.xpath_bool("count(//person) > 0")
Searches this node for XPath path and restricts the return type to Float64
.
node.xpath_float("count(//person)")
Searches this node for XPath path for nodes and returns the first one. or nil if not found
node.xpath_node("//person")
Searches this node for XPath path and restricts the return type to NodeSet
.
node.xpath_nodes("//person")
Searches this node for XPath path and restricts the return type to String
.
node.xpath_string("string(/persons/person[1])")