The XML module allows parsing and generating XML documents.
XML#parse will parse xml from String or IO and return xml document as an XML::Node which represents all kinds of xml nodes.
Example:
require "xml"
xml = <<-XML
<person id="1">
<firstname>Jane</firstname>
<lastname>Doe</lastname>
</person>
XML
document = XML.parse(xml) # : XML::Node
person = document.first_element_child # : XML::Node?
if person
puts person["id"] # "1" : String?
puts typeof(person.children) # XML::NodeSet
person.children.select(&.element?).each do |child| # Select only element children
puts typeof(child) # XML::Node
puts child.name # firstname : String
puts child.content # Jane : String?
end
end Use XML.build, which uses an XML::Builder:
require "xml"
string = XML.build(indent: " ") do |xml|
xml.element("person", id: 1) do
xml.element("firstname") { xml.text "Jane" }
xml.element("lastname") { xml.text "Doe" }
end
end
string # => "<?xml version=\"1.0\"?>\n<person id=\"1\">\n <firstname>Jane</firstname>\n <lastname>Doe</lastname>\n</person>\n" Returns the resulting String of writing XML to the yielded XML::Builder.
Writes XML document into the given IO.
Writes XML fragment into the given IO.
Returns the resulting String of writing XML to the yielded XML::Builder.
Parses an XML document from string with options into an XML::Node.
Parses an XML document from io with options into an XML::Node.
Parses an HTML document from string with options into an XML::Node.
Parses an HTML document from io with options into an XML::Node.
Returns the resulting String of writing XML to the yielded XML::Builder.
Builds an XML document (see #document) including XML declaration ().
require "xml"
string = XML.build(indent: " ") do |xml|
xml.element("person", id: 1) do
xml.element("firstname") { xml.text "Jane" }
xml.element("lastname") { xml.text "Doe" }
end
end
string # => "<?xml version=\"1.0\"?>\n<person id=\"1\">\n <firstname>Jane</firstname>\n <lastname>Doe</lastname>\n</person>\n" Writes XML document into the given IO. An XML::Builder is yielded to the block.
Builds an XML document (see #document) including XML declaration ().
Writes XML fragment into the given IO. An XML::Builder is yielded to the block.
Builds an XML fragment without XML declaration ().
Returns the resulting String of writing XML to the yielded XML::Builder.
Builds an XML fragment without XML declaration ().
require "xml"
string = XML.build_fragment(indent: " ") do |xml|
xml.element("person", id: 1) do
xml.element("firstname") { xml.text "Jane" }
xml.element("lastname") { xml.text "Doe" }
end
end
string # => "<person id=\"1\">\n <firstname>Jane</firstname>\n <lastname>Doe</lastname>\n</person>\n" Parses an XML document from string with options into an XML::Node.
See ParserOptions.default for default options.
Parses an XML document from io with options into an XML::Node.
See ParserOptions.default for default options.
Parses an HTML document from string with options into an XML::Node.
See HTMLParserOptions.default for default options.
Parses an HTML document from io with options into an XML::Node.
See HTMLParserOptions.default for default options.
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/XML.html