This is my source XML :
<?xml version="1.0" encoding="UTF-8"?>
<cteProc xmlns="http://www.portalfiscal.inf.br/cte" versao="1.04">
<CTe>
<infCte versao="1.04" Id="CTe35121004211559000111570010000118991000119858">
<ide>
     <cUF>35</cUF>
     <cCT>00011985</cCT>
     <CFOP>7358</CFOP>
     <natOp>PRESTACAO DE SERVICO DE TRANSPORTE</natOp>
     <forPag>1</forPag>
     <mod>57</mod>
     <serie>1</serie>
     <nCT>11899</nCT>
     <dhEmi>2012-10-01T09:34:45</dhEmi>
</ide>
<compl>
<emit>
<rem>
<dest>
<vPrest>
<imp>
<infCTeNorm>
</infCte>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
</CTe>
<protCTe versao="1.04">
</cteProc>
I have read this file with this code :
      XmlTextReader reader = new XmlTextReader(@"C:\Separados\56000858_v01.04-procCTe.xml");
        XmlNodeType type;
        while (reader.Read())
        {
            type = reader.NodeType;
            if (type == XmlNodeType.Element)
            {
                if (reader.Name == "cUF")
                {  reader.Read(); Xmunini = reader.Value; textBox1.Text = Xmunini;}
                if (reader.Name == "cCT")
                {  reader.Read(); vtprest = reader.Value; textBox2.Text = vtprest;}
                if (reader.Name == "natOp")
                {   reader.Read(); UFIni = reader.Value; textBox3.Text = UFIni; }
                if (reader.Name == "nCT")
                { reader.Read(); NCT = reader.Value; textBox4.Text = NCT;}
But, i have read in many post here , the method with LINQ is more efficient, i have try write this :
    var custs45 = from c in XElement.Load(@"C:\Separados\56000858_v01.04-procCTe.xml").Elements("Cte")
    select new { 
    CFOP = c.Element("CFOP").Value,
    xMunIni = c.Element("xMunIni").Value 
    };
My question is how to assign CFOP and Xmunini to a variable?? i have write this but do not show anything
    string CFF;
    foreach (var valores in custs45)
    { 
      CFF = valores.CFOP.ToString() ;        
    }