6 votes

Equivalent de SAXParser en C#

J'ai le code Java ci-dessous, je dois le convertir en C#, aidez-moi

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;
  }

Gracias

9voto

Darin Dimitrov Points 528142

Analyseur XML natif C# XmlReader ne prend pas en charge SAX et n'est qu'à terme. Vous pouvez jeter un coup d'œil à cet article présentant quelques points spécifiques à ce sujet. Vous pouvez simuler un analyseur syntaxique SAX en utilisant XmlReader . Si cela ne vous convient pas, vous pouvez aussi utiliser XDocument qui est une API différente pour travailler avec des fichiers XML dans .NET. Pour conclure, il n'y a pas d'analyseur syntaxique push XML intégré dans le cadre de .NET. Vous devrez donc utiliser une bibliothèque tierce ou COM Interop to MSXML pour y parvenir si vous avez vraiment besoin d'un analyseur syntaxique piloté par événement.

5voto

takuki Points 124

J'ai utilisé SAX for .NET dans deux projets avec succès dans le passé. http://saxdotnet.sourceforge.net/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X