Leia o arquivo XML em XmlDocument

103

Eu sou muito novo em C #. Tenho o arquivo XML (text.xml). Eu quero ler isso XmlDocumente armazenar o fluxo na variável string.

AJP
fonte
1
obrigado a ambos pela ajuda.
AJP de

Respostas:

169

Use o XmlDocument.Load()método para carregar XML do seu arquivo. Em seguida, use a XmlDocument.InnerXmlpropriedade para obter a string XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;
Timur Sadykov
fonte
2
XmlDocumentnão contém uma definição para Load.
Matt Clark
Eu votei contra todos eles porque nenhum deles funcionou. Acontece que estou desenvolvendo para WindowsRT, e o Compact .NET Framework tem muitos desses recursos eliminados. Incluindo muitos dos que preciso ... Como XmlDocument.Load()e e o construtor StreamReaderStreamReader(filePath)
Matt Clark
11
@MattClark: Eu sinto sua dor - tenho lutado com os caprichos e limitações da FC há dois anos - mas isso não é motivo para votar negativamente. O OP não especificou CF e, portanto, não há motivo para os respondentes levarem CF em consideração.
B. Clay Shannon
17

Se a sua versão .NET for mais recente do que 3.0, você pode tentar usar em System.Xml.Linq.XDocumentvez de XmlDocument. É mais fácil processar dados com XDocument.

Pupper
fonte
3
E aqui está como carregar um arquivo usando XDocument: stackoverflow.com/questions/670563/linq-to-read-xml
Brian Leeming
6

Espero que você não se importe com Xml.Linq e .net3.5 +

XElement ele = XElement.Load("text.xml");
String aXmlString = ele.toString(SaveOptions.DisableFormatting);

Dependendo do que você está interessado, você provavelmente pode pular toda a parte var 'string' e apenas usar objetos XLinq

Abdul Hfuda
fonte
6
XmlDocument doc = new XmlDocument();
   doc.Load("MonFichierXML.xml");

    XmlNode node = doc.SelectSingleNode("Magasin");

    XmlNodeList prop = node.SelectNodes("Items");

    foreach (XmlNode item in prop)
    {
        items Temp = new items();
        Temp.AssignInfo(item);
        lstitems.Add(Temp);
    }
usuário 3626085
fonte
1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");
Juliano Sales
fonte
Observe que a pergunta também requer o armazenamento do conteúdo XML em uma string.
min.
XmlDocument.LoadXml()carrega uma string XML. Para carregar um arquivo XML por nome, use XmlDocument.Load()como a resposta aceita sugere.
François Beaune