@Glavryba

Как парсить несколько XML файлов с помощью SAX на Java?

Никак не могу запустить парсинг нескольких XML файлов из одной папки

Вот код программы:

Тут я загружаю файлы
public static void main(String[] args)  throws IOException
    {
        SAXParserFactory factory = SAXParserFactory.newInstance();

    factory.setValidating(true);
    factory.setNamespaceAware(false);
    SAXParser parser;

    //InputStream xmlData = null;
    try
    {
        BufferedReader xmlData = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\XMLExamples")));

        parser = factory.newSAXParser();
        parser.parse(xmlData, new MyParser());


    } 

}


Ошибка выходит при передачи аргументов в parser.parse Текст ошибки: Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method parse(InputStream, HandlerBase) in the type SAXParser is not applicable for the arguments (BufferedReader, MyParser)


Класс в котором обрабатывается парсер:

Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException {
    System.out.println("Тег: "+qName);
    if(qName.equals("HEADER"))
        System.out.println("IDFILE: "+attributes.getValue("IDFILE"));
    System.out.println("S_ID: "+attributes.getValue("S_ID"));
    //      System.out.println(attributes.getLength());
    super.startElement(uri, localName, qName, attributes);


}
  @Override
    public void characters(char[] c, int start, int length) 
                                                 throws SAXException {
        super.characters(c, start,  length);
        for(int i=start;i< start+length;++i)
        System.err.print(c[i]);
}

@Override
public void endElement(String uri, String localName, String qName) 
                                                throws SAXException {

    System.out.println("Tag done: "+qName);
    super.endElement(uri,localName, qName);
}

@Override
public void startDocument() throws SAXException {
    System.out.println("Start parsing doc!");
    super.startDocument();
}

@Override
public void endDocument() throws SAXException {
    super.endDocument();
    System.out.println("Parsing finished!");

}

}
  • Вопрос задан
  • 3135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Applez
@Applez
Разраб
Класс MyParser полностью покажите пожалуйста.

Возможно, Вам будет удобнее использовать XMLReader вместо BufferReader.
SAXParser saxParser = spf.newSAXParser();
XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.parse(convertToFileURL(filename));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы