示例#1
0
 def parseFile(self, file):
     """Parse a file and populate the channel."""
     dh = RSSParser(self)
     p = make_parser()
     p.setContentHandler(dh)
     p.setFeature(sax.handler.feature_namespaces, 1)
     p.parseFile(file)
     return dh
示例#2
0
 def parseFile(self, file):
     """Parse a file and populate the channel."""
     dh = RSSParser(self)
     p = make_parser()
     p.setContentHandler(dh)
     p.setFeature(sax.handler.feature_namespaces, 1)
     p.parseFile(file)
     return dh
示例#3
0
 def run(self):
     self.parser = sax2exts.make_parser(self.parserlist)
     try:
         self.parser.setFeature(handler.feature_namespaces, 0)
     except SAXException:
         self.has_namespaces = 0
     try:
         self.parser.setFeature(handler.feature_validation, 1)
     except SAXException:
         self.has_validation = 0
     self.parser.setContentHandler(self)
     self.parser.parse(self.suitedef)
示例#4
0
 def run(self):
     self.parser = sax2exts.make_parser(self.parserlist)
     try:
         self.parser.setFeature(handler.feature_namespaces, 0)
     except SAXException:
         self.has_namespaces = 0
     try:
         self.parser.setFeature(handler.feature_validation, 1)
     except SAXException:
         self.has_validation = 0
         if self.validate == 'yes':
             print >>sys.stderr, "Parser is non-validating!!!"
             sys.exit(1)
     self.parser.setContentHandler(self)
     self.parser.parse(self.suitedef)
示例#5
0
 def parse(self, url, timeout=30):
     """
     Fetch a channel representation from a URL and populate
     the channel.
     """
     dh = RSSParser(self)
     p = make_parser()
     p.setContentHandler(dh)
     p.setFeature(sax.handler.feature_namespaces, 1)
     signal.signal(signal.SIGALRM, self._timeout)
     signal.alarm(timeout)
     try:
         p.parse(str(url))  # URIs are ascii
     finally:
         signal.alarm(0)
     return dh
示例#6
0
 def parse(self, url, timeout=30):
     """
     Fetch a channel representation from a URL and populate
     the channel.
     """
     dh = RSSParser(self)
     p = make_parser()
     p.setContentHandler(dh)
     p.setFeature(sax.handler.feature_namespaces, 1)
     signal.signal(signal.SIGALRM, self._timeout)
     signal.alarm(timeout)
     try:
         p.parse(str(url))  # URIs are ascii
     finally:
         signal.alarm(0)
     return dh
示例#7
0
    def doParse(self, file, **kw):
        validate = kw.get('validate', 0)

        logger = TestLogger()

        parser = sax2exts.make_parser(self.parserlist)
        if self.has_namespaces:
            # all testing w/o namespaces at the moment
            parser.setFeature(handler.feature_namespaces, 0)
        if self.has_validation:
            parser.setFeature(handler.feature_validation, validate)
        parser.setContentHandler(logger)
        parser.setErrorHandler(logger)
        parser.setEntityResolver(logger)
        parser.setDTDHandler(logger)

        try:
            parser.parse(file)
        except TestResult, result:
            return result
示例#8
0
def test(xmlfile):
    parser = sax2exts.make_parser([
        'pirxx',
        'xml.sax.drivers2.drv_xmlproc',
        'xml.sax.drivers2.drv_pyexpat',
    ])
    print >> sys.stderr, "*** Using", parser

    try:
        parser.setFeature(handler.feature_namespaces, 1)
    except (SAXNotRecognizedException, SAXNotSupportedException):
        pass
    try:
        parser.setFeature(handler.feature_validation, 0)
    except (SAXNotRecognizedException, SAXNotSupportedException):
        pass

    saxhandler = EchoGenerator()
    parser.setContentHandler(saxhandler)
    parser.setProperty(handler.property_lexical_handler, saxhandler)
    parser.parse(xmlfile)