Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. import xml.sax
  2.  
  3. class EpiserverFeedValidator(ContentHandler):
  4. def __init__(self):
  5. contentTypes = {"link":checkUrl, "p:imageLink":checkImageUrl, "title":checkTitle, "p:unitPrice":checkPrice,}
  6. self.elementType = ""
  7. self.elementContent = ""
  8. self.processElement = False
  9. self.guid = ""
  10.  
  11. linkSet = {}
  12. imageLinkSet = {}
  13.  
  14. def startElement(self, name, attrs):
  15.  
  16. self.elementType = ""
  17. self.elementContent = ""
  18. self.processElement = False
  19.  
  20. if name is "guid":
  21. self.guid = name
  22.  
  23. if name in contentTypes:
  24. self.elementType = name
  25. self.processElement = True
  26.  
  27. def characters(self, ch):
  28. if self.processElement:
  29. self.elementContent = self.elementContent + ch
  30.  
  31. def endElement(self, name):
  32. if self.processElement:
  33. processElements(name)
  34.  
  35. def processElements(name):
  36. contentTypes(name)(self)
  37.  
  38. def checkUrl(self):
  39.  
  40. if len(self.elementContent) > 300:
  41. print("LINK TOO LONG: " + self.elementContent)
  42.  
  43. if self.elementContent in linkSet:
  44. print("DUPLICATE LINK: " + self.elementContent)
  45. else:
  46. linkSet.add(self.elementContent)
  47.  
  48.  
  49. def checkImageUrl(self):
  50.  
  51. if len(self.elementContent) > 300:
  52. print("IMAGE LINK TOO LONG FOR " + self.guid + " : " + self.elementContent)
  53.  
  54. if self.elementContent in imageLinkSet:
  55. print("DUPLICATE IMAGE LINK FOR " + self.guid + " : " + self.elementContent)
  56. else:
  57. imageLinkSet.add(self.elementContent)
  58.  
  59. def checkTitle(self):
  60. if len(self.elementContent) > 200:
  61. print("IMAGE LINK TOO LONG FOR " + self.guid + " : " + self.elementContent)
  62.  
  63. def checkPrice(self):
  64. if self.elementContent is "":
  65. print("UNIT PRICE MISSING FOR " + self.guid + " : " + self.elementContent)
  66.  
  67.  
  68. parser = xml.sax.make_parser()
  69. parser.setContentHandler(EpiserverFeedValidator)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement