2009-04-08 18 views

risposta

13

Qualcosa di simile:

static void Main() { 
     Test("<abc><def/></abc>"); 
     Test("<abc><def/><abc>"); 
    } 
    static void Test(string xml) { 
     using (XmlReader xr = XmlReader.Create(
       new StringReader(xml))) { 
      try { 
       while (xr.Read()) { } 
       Console.WriteLine("Pass"); 
      } catch (Exception ex) { 
       Console.WriteLine("Fail: " + ex.Message); 
      } 
     } 
    } 

Se avete bisogno di controllare contro una XSD, quindi utilizzare XmlReaderSettings.

4

Basta eseguirlo con un parser. Questo eseguirà i controlli appropriati (se analizza ok).

Se è un documento di grandi dimensioni (come indicato), un parser basato su eventi (ad esempio SAX) sarà appropriato poiché non memorizzerà il documento in memoria.

È spesso utile disporre di utilità XML in giro per controllare questo tipo di cose. Io uso XMLStarlet, che è un insieme di strumenti da riga di comando per controllo/manipolazione XML.

Problemi correlati