summaryrefslogtreecommitdiffstats
path: root/lib/jython/Lib/xml/dom/minitraversal.py
blob: 888800463e74e28de49e82df68f1aa814b6b509d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""A DOM implementation that offers traversal and ranges on top of
minidom, using the 4DOM traversal implementation."""

import minidom, string

class DOMImplementation(minidom.DOMImplementation):
    def hasFeature(self, feature, version):
        if version not in ("1.0", "2.0"):
            return 0
        feature = string.lower(feature)
        if feature in ['traversal','range']:
            return 1
        return minidom.DOMImplementation.hasFeature(self, feature, version)

    def _createDocument(self):
        return Document()

class Document(minidom.Document):
    implementation = DOMImplementation()
    def createNodeIterator(self, root, whatToShow, filter, entityReferenceExpansion):
        from xml.dom import NodeIterator
        nodi = NodeIterator.NodeIterator(root, whatToShow, filter, entityReferenceExpansion)
        return nodi

    def createTreeWalker(self, root, whatToShow, filter, entityReferenceExpansion):
        from TreeWalker import TreeWalker
        return TreeWalker(root, whatToShow, filter, entityReferenceExpansion)

    def createRange(self):
        import Range
        return Range.Range(self)

def getDOMImplementation():
    return Document.implementation