Python: escaping, fix in filter
This commit is contained in:
@@ -16,10 +16,12 @@ class TextNode(object):
|
|||||||
def cloneNode(self, deep):
|
def cloneNode(self, deep):
|
||||||
return TextNode(self.textContent)
|
return TextNode(self.textContent)
|
||||||
|
|
||||||
def __str__(self):
|
def getTextContent(self):
|
||||||
# TODO: HTML escaping
|
|
||||||
return self.textContent
|
return self.textContent
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.textContent.replace('&', '&').replace('<', '<')
|
||||||
|
|
||||||
|
|
||||||
class Element(object):
|
class Element(object):
|
||||||
def __init__(self, nodeName):
|
def __init__(self, nodeName):
|
||||||
@@ -81,10 +83,18 @@ class Element(object):
|
|||||||
element.setAttribute(key, value)
|
element.setAttribute(key, value)
|
||||||
return element
|
return element
|
||||||
|
|
||||||
|
def getTextContent(self):
|
||||||
|
return ''.join(x.getTextContent() for x in self.childNodes)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
# TODO: attributes
|
# TODO: attributes
|
||||||
values = map(str, self.childNodes)
|
values = map(str, self.childNodes)
|
||||||
return '<%s>%s</%s>' % (self.nodeName, ''.join(values), self.nodeName)
|
return '<%s%s>%s</%s>' % (
|
||||||
|
self.nodeName,
|
||||||
|
''.join(' %s="%s"' % (k, v.replace('"', '"'))
|
||||||
|
for k, v in self.attributes.iteritems()),
|
||||||
|
''.join(values),
|
||||||
|
self.nodeName)
|
||||||
|
|
||||||
|
|
||||||
# ============ Matchers ============
|
# ============ Matchers ============
|
||||||
@@ -277,7 +287,7 @@ def ChildToAttribute(parentName, childName):
|
|||||||
return
|
return
|
||||||
for childNode in node.childNodes:
|
for childNode in node.childNodes:
|
||||||
if childNode.nodeName == childName:
|
if childNode.nodeName == childName:
|
||||||
node.setAttribute(childName, childNode.textContent)
|
node.setAttribute(childName, childNode.getTextContent())
|
||||||
node.removeChild(childNode)
|
node.removeChild(childNode)
|
||||||
break
|
break
|
||||||
return Filter
|
return Filter
|
||||||
|
|||||||
Reference in New Issue
Block a user