2011-01-05 3 views
19

У меня есть XML-строка. Мне нужно преобразовать эту строку в Тип XMLTextReader (System.Xml.XMLTextReader) в dotnet.Как прочитать строку xml в формате XMLTextReader

Я использовал следующий код:

string szInputXml = "<TestDataXml><DataName>testing</DataName></TestDataXml>" ; 
XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(szInputXml)); 

Но строку внутри читателя пуст после выполнения.

Пожалуйста, помогите мне разобраться, что нужно сделать, чтобы получить XMLTextReader для заполнения данной строкой.

+3

Не используйте 'new XmlTextReader()'. Он устарел с .NET 2.0. Вместо этого используйте 'XmlReader.Create()'. –

+0

Кроме того, у вас должно быть что-то еще. Выражение 'new' не может возвращать значение null. –

+0

@JohnSaunders, почему он устарел? –

ответ

38

Как вы определяете, является ли строка пустой?

string szInputXml = "<TestDataXml><DataName>testing</DataName></TestDataXml>"; 
XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(szInputXml)); 
reader.Read(); 
string inner = reader.ReadInnerXml(); 

Без третьей линии «внутренняя» действительно была пуста. Теперь он содержит тестирование.

+0

Имейте в виду, что это похоже на IDataReader.Read() в том смысле, что когда вы делаете .Read, он переходит к следующему элементу. См. Https://msdn.microsoft.com/en-us/library/system.xml.xmlreader.read%28v=vs.110%29.aspx. – granadaCoder

Смежные вопросы