X-Git-Url: http://nitlanguage.org diff --git a/lib/dom/dom.nit b/lib/dom/dom.nit index 786bdcc..5a1b8c0 100644 --- a/lib/dom/dom.nit +++ b/lib/dom/dom.nit @@ -30,9 +30,9 @@ redef class XMLEntity # assert xml["animal"].length == 1 # assert xml["animal"].first["cat"].length == 2 # ~~~ - fun [](tag_name: String): Array[XMLEntity] + fun [](tag_name: String): Array[XMLTag] do - var res = new Array[XMLEntity] + var res = new Array[XMLTag] for child in children do if child isa XMLTag and child.tag_name == tag_name then res.add child @@ -67,3 +67,27 @@ redef class XMLStartTag abort end end + +redef class XMLAttrTag + + # Attributes as a map (ignoring malformed attributes) + # + # ~~~ + # var xml = """ + # + # """.to_xml + # + # var attributes = xml["student"].first.as(XMLAttrTag).attributes_to_map + # assert attributes.join(", ", ":") == "first:Snow, last:Man" + # ~~~ + fun attributes_to_map: Map[String, String] + do + var m = new Map[String, String] + for a in attributes do + if a isa XMLStringAttr then + m[a.name] = a.value + end + end + return m + end +end