2014-02-01 2 views
0

Привет всем, у меня есть следующая строка XML, сгенерированная из файла. Я хочу десериализировать его.De-serialize XML String

<CustomerName>TEST</CustomerName> 
<PONumber></PONumber> 
<ProcessedBy>Jerry Cooke</ProcessedBy> 
<ProcessDate>03-05-2004 14:00:49</ProcessDate> 
<TagNumber></TagNumber> 
<SerialNumber>134</SerialNumber> 

Я использую следующий код.

string Data = upperxmlstring 
XmlTextReader reader = new XmlTextReader(Data); 
       obj = (T)serializer.Deserialize(reader); 
       reader.Close(); 

Я получаю следующее исключение «Запрещенные символы в пути.» Эта ошибка появляется в XmlTextReader reader = new XmlTextReader(Data); Пожалуйста, помогите мне в решении ее.

+1

Ваш XML не является правильным документом: XML-документ не может иметь несколько корневых элементов. – MarcinJuraszek

ответ

0

new XmlTextReader(string) ожидает имя файла, а не содержание. Чтобы прочитать содержимое из строки, вам нужно создать экземпляр TextReader для этой строки. Используйте для этого StringReader.

Лучше все еще, не используйте XmlTextReader, так как он устарел. Используйте вместо этого XmlReader.Create:

string Data = upperxmlstring; 
XmlReader reader = XmlReader.Create(new StringReader(Data)); 
obj = (T)serializer.Deserialize(reader); 
reader.Close(); 
+0

Это работало для вас? Пожалуйста, примите это как ответ, если это произойдет. – lionello