Module: CodeModels::Xml
- Defined in:
- lib/codemodels/xml/parser.rb,
lib/codemodels/xml/version.rb,
lib/codemodels/xml/language.rb,
lib/codemodels/xml/metamodel.rb
Defined Under Namespace
Classes: Attribute, Document, Element, Namespace, Parser, Text, XmlAstNode, XmlLanguage
Constant Summary
collapse
- DefaultParser =
Parser.new
- VERSION =
"0.1.2"
Class Method Summary
collapse
Class Method Details
.jsonize_doc(doc) ⇒ Object
110
111
112
113
114
115
116
117
|
# File 'lib/codemodels/xml/parser.rb', line 110
def self.jsonize_doc(doc)
map = {}
map['namespaces'] = doc.namespaces
map['version'] = doc.version
map['encoding'] = doc.encoding
map['root'] = jsonize_node(doc.root)
map
end
|
.jsonize_node(node) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/codemodels/xml/parser.rb', line 73
def self.jsonize_node(node)
map = {}
map['name'] = node.name
map['blank'] = node.blank?
map['cdata'] = node.cdata?
map['comment'] = node.
map['content'] = node.content
map['fragment'] = node.fragment?
map['is_text'] = node.text?
map['text'] = node.text
map['type'] = node.type
namespaces = []
node.namespace_definitions.each do |n|
namespaces << { 'href' => n.href, 'prefix' => n.prefix}
end
map['namespaces'] = namespaces
attrs = []
node.attribute_nodes.each do |a|
attr_map = {}
attr_map['value'] = a.value
attr_map['name'] = a.name
attrs << attr_map
end
map['attributes'] = attrs
children = []
node.children.each do |c|
children << jsonize_node(c)
end
map['children'] = children
map
end
|