Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- elementTree = (node) ->
- element = []
- element.tag = node.tagName
- element.attrib = {}
- for attribute in node.attributes
- element.attrib[attribute.name] = attribute.value
- element.text = ''
- element.tail = ''
- last_element = null
- for child, i in node.childNodes
- if child.tagName
- last_element = element.push elementTree(child)
- else
- value = child.textContent.replace(/\s/g, ' ')
- if value != ' '
- if last_element
- last_element.tail += value
- else
- element.text += value
- element.findall = (pattern) ->
- parts = pattern.split('/')
- result = [@]
- while parts.length > 0
- tag = parts.shift()
- matches = result
- result = []
- for node in matches
- for child in node
- if tag == '*'
- result.push(child)
- else if child.tag == tag
- result.push(child)
- return result
- element.find = (pattern) ->
- return @findall(pattern)[0]
- element.findtext = (pattern) ->
- return @find(pattern).text
- return element
Add Comment
Please, Sign In to add comment