2010-10-11 25 views
5

tengo a continuación el código de Java, necesito convertir éstos en C#, amablemente me ayude ..SAXParser equivalente en 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; 
    } 

Gracias

Respuesta

7

C analizador # XML nativo XmlReader no admite SAX y es solo hacia adelante Puede echar un vistazo al this article presentando algunos puntos específicos al respecto. Podría simulate a SAX parser using XmlReader. Si no se ajusta a sus necesidades, también puede usar XDocument, que es una API diferente para trabajar con archivos XML en .NET. Por lo tanto, para concluir, no existe un analizador sintáctico XML incorporado en .NET Framework, por lo que es posible que necesite utilizar una biblioteca de terceros o una interoperabilidad COM para MSXML para lograr esto si realmente necesita un analizador de eventos.

+0

El op solo quiere leer la configuración, pero para el beneficio de otros que están interesados ​​en el análisis SAX: Generalmente * no * simula un analizador SAX con XmlReader porque los conceptos de SAX son diferentes: SAX me da un "abrir etiqueta de elemento "incluso si el documento está mal formado y nunca se cierra. XmlReader me da el subárbol completo solo cuando ha terminado de leerlo, y por lo tanto debe estar completo. Hay otro puerto de SAX [aquí] (https://github.com/rasmusjp/sax.net), pero no estoy seguro de lo que vale. – John