Beispiel #1
0
 def test_character_stream(self):
     src = InputSource(self.file)
     src.setCharacterStream(self.make_character_stream())
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getByteStream())
     self.checkContent(prep.getCharacterStream(),
                       'This is a character stream.')
  def parse(self) :
    if (isinstance(self.source,unicode)) :
      # Create a string source
      file = io.StringIO(self.source)
      input = InputSource(file)
      input.setEncoding("utf-8")
      input.setCharacterStream(file)
      # There is a bug in xml.sax.saxutils.prepare_input_source
      input.setByteStream(file)
      input.setSystemId(None)
    elif (isinstance(self.source,InputSource)):
      input = self.source
    else:
      raise Exception("Parse source must be either string or InputSource")

    # Create the parser/xmlreader
    parser = xml.sax.make_parser()

    # Tell the parser to use our handler(s)
    parser.setContentHandler(self)
    #parser.setErrorHandler(self)

    #parser.setFeature(xml.sax.handler.feature_namespaces,True)
    # Shut off dtd validation
    parser.setFeature(xml.sax.handler.feature_validation,False)
    parser.setFeature(xml.sax.handler.feature_external_ges, False)

    # Parse the document
    parser.parse(input)
Beispiel #3
0
 def test_character_stream(self):
     # If the source is an InputSource with a character stream, use it.
     src = InputSource(self.file)
     src.setCharacterStream(self.make_character_stream())
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getByteStream())
     self.checkContent(prep.getCharacterStream(),
                       "This is a character stream.")
Beispiel #4
0
 def test_character_stream(self):
     # If the source is an InputSource with a character stream, use it.
     src = InputSource(self.file)
     src.setCharacterStream(self.make_character_stream())
     prep = prepare_input_source(src)
     self.assertIsNone(prep.getByteStream())
     self.checkContent(prep.getCharacterStream(),
                       "This is a character stream.")
Beispiel #5
0
 def test_expat_inpsource_character_stream(self):
     parser = create_parser()
     result = BytesIO()
     xmlgen = XMLGenerator(result)
     parser.setContentHandler(xmlgen)
     inpsrc = InputSource()
     with open(TEST_XMLFILE, 'rt', encoding='iso-8859-1') as f:
         inpsrc.setCharacterStream(f)
         parser.parse(inpsrc)
     self.assertEqual(result.getvalue(), xml_test_out)
Beispiel #6
0
    def test_expat_inpsource_character_stream(self):
        parser = create_parser()
        result = BytesIO()
        xmlgen = XMLGenerator(result)

        parser.setContentHandler(xmlgen)
        inpsrc = InputSource()
        with open(TEST_XMLFILE, 'rt', encoding='iso-8859-1') as f:
            inpsrc.setCharacterStream(f)
            parser.parse(inpsrc)

        self.assertEqual(result.getvalue(), xml_test_out)