XmlPrimitiveParser.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2007 Esmertec AG.
  3.  * Copyright (C) 2007 The Android Open Source Project
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package com.android.im.imps;
  18. import java.io.IOException;
  19. import java.io.InputStream;
  20. import org.xml.sax.InputSource;
  21. import org.xml.sax.XMLReader;
  22. import org.xml.sax.SAXException;
  23. import org.xml.sax.helpers.XMLReaderFactory;
  24. import com.android.im.engine.ImException;
  25. public class XmlPrimitiveParser implements
  26.         PrimitiveParser {
  27.     private XMLReader mXmlReader;
  28.     private PrimitiveContentHandler mContentHandler;
  29.     public XmlPrimitiveParser() throws ImException {
  30.         //FIXME: Now we don't have the SAXParser wrapped inside,
  31.         //       use the Driver class temporarily.
  32.         System.setProperty("org.xml.sax.driver", "org.xmlpull.v1.sax2.Driver");
  33.         try {
  34.             mXmlReader = XMLReaderFactory.createXMLReader();
  35.             mContentHandler = new PrimitiveContentHandler();
  36.             mXmlReader.setContentHandler(mContentHandler);
  37.         } catch (SAXException e) {
  38.             throw new ImException(e);
  39.         }
  40.     }
  41.     public Primitive parse(InputStream in) throws ParserException, IOException {
  42.         mContentHandler.reset();
  43.         try {
  44.             mXmlReader.parse(new InputSource(in));
  45.         } catch (SAXException e) {
  46.             throw new ParserException(e);
  47.         }
  48.         return mContentHandler.getPrimitive();
  49.     }
  50. }