Как прочитать строку xml в тип XMLTextReader

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

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

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

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

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


person osum    schedule 05.01.2011    source источник
comment
Не используйте new XmlTextReader(). Он устарел, начиная с .NET 2.0. Вместо этого используйте XmlReader.Create().   -  person John Saunders    schedule 05.01.2011
comment
Кроме того, у вас должно быть что-то еще. Выражение new не может возвращать значение null.   -  person John Saunders    schedule 05.01.2011
comment
@JohnSaunders, почему это устарело?   -  person Colonel Panic    schedule 15.01.2013
comment
Много причин. Отсутствие гибкости и возможностей, в основном   -  person John Saunders    schedule 15.01.2013


Ответы (1)


Как определить, пуста ли строка?

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

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

person dzendras    schedule 05.01.2011
comment
Имейте в виду, что это похоже на IDataReader.Read() в том смысле, что когда вы выполняете .Read, он переходит к следующему элементу. См. msdn.microsoft. .com/en-us/library/ - person granadaCoder; 12.10.2015