summaryrefslogtreecommitdiff
path: root/pip/_vendor/html5lib/treebuilders/dom.py
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2014-05-03 01:13:28 -0400
committerDonald Stufft <donald@stufft.io>2014-05-03 01:13:28 -0400
commit0e72f65bf4e5ea6b8fd17d02fe4cae0ba7da5113 (patch)
tree5c04afcabe3c7087e38b8114b19de437f2cf4ab3 /pip/_vendor/html5lib/treebuilders/dom.py
parentbdef6cebfb4e92a388cf84ed55cbd4ead8ef269c (diff)
parent93098d0c6781dd7019dfa43d9030f14b28f1bf2d (diff)
downloadpip-1.5.5.tar.gz
Merge branch '1.5.X'1.5.5
Conflicts: .travis/py34.sh CHANGES.txt PROJECT.txt
Diffstat (limited to 'pip/_vendor/html5lib/treebuilders/dom.py')
-rw-r--r--pip/_vendor/html5lib/treebuilders/dom.py65
1 files changed, 1 insertions, 64 deletions
diff --git a/pip/_vendor/html5lib/treebuilders/dom.py b/pip/_vendor/html5lib/treebuilders/dom.py
index f9e0d76e7..61e5ed79e 100644
--- a/pip/_vendor/html5lib/treebuilders/dom.py
+++ b/pip/_vendor/html5lib/treebuilders/dom.py
@@ -1,7 +1,7 @@
from __future__ import absolute_import, division, unicode_literals
-from xml.dom import minidom, Node, XML_NAMESPACE, XMLNS_NAMESPACE
+from xml.dom import minidom, Node
import weakref
from . import _base
@@ -220,69 +220,6 @@ def getDomBuilder(DomImplementation):
return "\n".join(rv)
- def dom2sax(node, handler, nsmap={'xml': XML_NAMESPACE}):
- if node.nodeType == Node.ELEMENT_NODE:
- if not nsmap:
- handler.startElement(node.nodeName, node.attributes)
- for child in node.childNodes:
- dom2sax(child, handler, nsmap)
- handler.endElement(node.nodeName)
- else:
- attributes = dict(node.attributes.itemsNS())
-
- # gather namespace declarations
- prefixes = []
- for attrname in list(node.attributes.keys()):
- attr = node.getAttributeNode(attrname)
- if (attr.namespaceURI == XMLNS_NAMESPACE or
- (attr.namespaceURI is None and attr.nodeName.startswith('xmlns'))):
- prefix = (attr.nodeName != 'xmlns' and attr.nodeName or None)
- handler.startPrefixMapping(prefix, attr.nodeValue)
- prefixes.append(prefix)
- nsmap = nsmap.copy()
- nsmap[prefix] = attr.nodeValue
- del attributes[(attr.namespaceURI, attr.nodeName)]
-
- # apply namespace declarations
- for attrname in list(node.attributes.keys()):
- attr = node.getAttributeNode(attrname)
- if attr.namespaceURI is None and ':' in attr.nodeName:
- prefix = attr.nodeName.split(':')[0]
- if prefix in nsmap:
- del attributes[(attr.namespaceURI, attr.nodeName)]
- attributes[(nsmap[prefix], attr.nodeName)] = attr.nodeValue
-
- # SAX events
- ns = node.namespaceURI or nsmap.get(None, None)
- handler.startElementNS((ns, node.nodeName), node.nodeName, attributes)
- for child in node.childNodes:
- dom2sax(child, handler, nsmap)
- handler.endElementNS((ns, node.nodeName), node.nodeName)
- for prefix in prefixes:
- handler.endPrefixMapping(prefix)
-
- elif node.nodeType in [Node.TEXT_NODE, Node.CDATA_SECTION_NODE]:
- handler.characters(node.nodeValue)
-
- elif node.nodeType == Node.DOCUMENT_NODE:
- handler.startDocument()
- for child in node.childNodes:
- dom2sax(child, handler, nsmap)
- handler.endDocument()
-
- elif node.nodeType == Node.DOCUMENT_FRAGMENT_NODE:
- for child in node.childNodes:
- dom2sax(child, handler, nsmap)
-
- else:
- # ATTRIBUTE_NODE
- # ENTITY_NODE
- # PROCESSING_INSTRUCTION_NODE
- # COMMENT_NODE
- # DOCUMENT_TYPE_NODE
- # NOTATION_NODE
- pass
-
return locals()