2010-05-06 4 views
1

Bonjour à tous Je suis en train de lire des données en tant que xmlElemet par analyseurlecture xmldata par analyseur

J'obtiens l'erreur comme .. « \ b », valeur hexadécimale 0x08, est un caractère non valide

I Lire cette chaîne .. Merci ..

 XElement xParser = null; 
      string sPwd = null; 
      string sKey1 = null; 
      string sKey2 = null; 
      System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 
      string soutxml = ""; 

      soutxml = encoding.GetString(sEncData); 
      xParser = XElement.Parse(soutxml); 

     IEnumerable<XElement> elemsValidations = 
       from el in xParser.Elements("EmailPwd") 
      select el; 

     foreach (XElement elemValidation in elemsValidations) 
     { 
      sPwd = elemValidation.Element("EncPwd").Value; 
      sKey1 = elemValidation.Element("Key1").Value; 
      sKey2 = elemValidation.Element("Key2").Value; 
     } 

      byte[] Key1 = encoding.GetBytes(sKey1); 
      byte[] Key2 = encoding.GetBytes(sKey2); 
      byte[] Data = encoding.GetBytes(sPwd); 

      // Decrypt the buffer back to a string. 
      string Final = DecryptTextFromMemory(Data, Key1, Key2); 

      return Final; 

Ces données sont sorties de données réelles ..

- <EmailPwd> 
- <EncPwd> 
- <![CDATA[ [email protected]]Z 
    ]]> 
    </EncPwd> 
- <Key1> 
- <![CDATA[ ~??s????E&?3??2?3I????? 
    ]]> 
    </Key1> 
- <Key2> 
- <![CDATA[ ???h?6 
    ]]> 
    </Key2> 
    </EmailPwd> 
+0

où est la chaîne? et quel analyseur utilisez-vous? un échantillon de code? – Kangkan

+0

Je vous enverrai un ex. Je lis ces données juste voir mon code –

Répondre

1

Vos données semblent avoir un caractère 0x08. Selon XML specification ce n'est pas XML valide donc l'analyseur est correct en soulevant une erreur

Vous devez changer les données pour être valide XML - en changeant avec les caractères non valides. et/ou demander au fournisseur des données de fournir du XML, ce qu'elles ne font pas actuellement.