2011-01-05 12 views
19

Ho una stringa XML. Devo convertire questa stringa nel tipo XMLTextReader (System.Xml.XMLTextReader) in dotnet.Come leggere una stringa xml in tipo XMLTextReader

ho usato il codice seguente:

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

Ma la stringa all'interno del lettore è vuota dopo l'esecuzione.

Please help me per capire cosa deve essere fatto per ottenere il XMLTextReader per essere popolato con la stringa data.

+3

Non utilizzare 'new XmlTextReader()'. È stato deprecato da .NET 2.0. Usa invece 'XmlReader.Create()'. –

+0

Inoltre, devi avere qualcos'altro in corso. Un'espressione 'new' non può restituire null. –

+0

@JohnSaunders, perché è deprecato? –

risposta

38

Come si determina se la stringa è vuota?

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

Senza terza riga "interno" era effettivamente vuoto. Ora contiene test.

+0

Tenete a mente, questo è come un IDataReader.Read() nel senso che quando si esegue un .Lead, si passa all'elemento successivo. Vedere https://msdn.microsoft.com/en-us/library/system.xml.xmlreader.read%28v=vs.110%29.aspx – granadaCoder