Syntax Tree support for XML.
Add this line to your application's Gemfile:
gem "syntax_tree-xml"
And then execute:
$ bundle install
Or install it yourself as:
$ gem install syntax_tree-xml
From code:
require "syntax_tree/xml"
pp SyntaxTree::XML.parse(source) # print out the AST
puts SyntaxTree::XML.format(source) # format the AST
From the CLI:
$ stree ast --plugins=xml file.xml
(document
(misc "\n"),
(element
(opening_tag "<", "message", ">"),
(char_data "\n" + " "),
(element (opening_tag "<", "hello", ">"), (char_data "Hello"), (closing_tag "</", "hello", ">")),
(char_data "\n" + " "),
(element (opening_tag "<", "world", ">"), (char_data "World"), (closing_tag "</", "world", ">")),
(char_data "\n"),
(closing_tag "</", "message", ">")
)
)
or
$ stree format --plugins=xml file.xml
<message>
<hello>Hello</hello>
<world>World</world>
</message>
or
$ stree write --plugins=xml file.xml
file.xml 1ms
Bug reports and pull requests are welcome on GitHub at https://github.com/ruby-syntax-tree/syntax_tree-xml.
The gem is available as open source under the terms of the MIT License.