Чтение xmldata через парсер - PullRequest
1 голос
/ 06 мая 2010

Привет всем, я читаю данные как xmlElemet через парсер

Я получаю сообщение об ошибке типа .. '\ b', шестнадцатеричное значение 0x08, недопустимый символ

Я читаю эту строку .. Спасибо ..

        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;

Эти данные являются фактическими данными.

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

1 Ответ

1 голос
/ 06 мая 2010

Ваши данные содержат символ 0x08. Согласно спецификации XML это недопустимый XML, поэтому синтаксический анализатор правильно выдал ошибку

Вы должны изменить данные на допустимый XML - путем замены недопустимыми символами. и / или попросить поставщика данных предоставить XML, который они в настоящее время не делают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...