         return node._localNameCache
       if typeof node is "string"
         return @getQname(node).local
+      if node.hasAttribute? and node.hasAttribute('data-xmlel')
+        return node._localNameCache = node.attributes['data-xmlel'].value
       if node.localName isnt undefined
         return node._localNameCache = node.localName
       if node.local isnt undefined

        node = parent
      return path


    getNextSiblingElement: (node, tagName) ->
      node = node.nextSibling

      return node


    pathForNode: (node, root) ->
      while node.ownerElement?
        node = node.ownerElement
      path = []
      while parent = node.parentNode and parent isnt root
        index = 0
        if node.previousSibling
          sibling = node.previousSibling
