SAXParser эквивалент в C # - PullRequest
       2

SAXParser эквивалент в C #

6 голосов
/ 11 октября 2010

У меня ниже Java-код, мне нужно конвертировать их в C #, пожалуйста, помогите мне ..

public class Configuration {

  private ConfigContentHandler confHandler;

  public Configuration() {
  }

  public boolean parseConfigFile() throws Exception {
    boolean bReturn = true;

    SAXParser parser = SAXParserFactory.newInstance().newSAXParser();

    System.out.println("*** Start parsing");

    try {
       confHandler = new ConfigContentHandler(100);
       // Configuration file must be located in main jar file folder

       // Set the full Prosper file name
       String sConfigFile = "configuration.xml";

       // Get abstract (system independent) filename
       File fFile = new File(sConfigFile);

       if (!fFile.exists()) {
          System.out.println("Could not find configuration file " + sConfigFile + ", trying input parameters.");
          bReturn = false;
       }  else if (!fFile.canRead()) {
          System.out.println("Could not read configuration file " + sConfigFile + ", trying input parameters.");
          bReturn = false;
       } else {
          parser.parse(fFile, confHandler);
       }

    } catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("Input error.");
    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("*** End parsing");
    return bReturn;
  }

Спасибо

Ответы [ 2 ]

7 голосов
/ 11 октября 2010

C # собственный синтаксический анализатор XML XmlReader не поддерживает SAX и предназначен только для пересылки. Вы можете взглянуть на эту статью , где представлены некоторые конкретные моменты по этому поводу. Вы можете имитировать SAX-парсер, используя XmlReader . Если это не соответствует вашим потребностям, вы также можете использовать XDocument , который представляет собой другой API для работы с файлами XML в .NET. Итак, чтобы сделать вывод, что в .NET Framework нет встроенного анализатора push XML, поэтому вам может потребоваться использовать стороннюю библиотеку или COM Interop для MSXML, чтобы добиться этого, если вам действительно нужен анализатор, управляемый событиями.

4 голосов
/ 04 мая 2014

В прошлом я успешно использовал SAX для .NET в двух проектах.http://saxdotnet.sourceforge.net/

...