none
Recuperar valor da Tag do XML RRS feed

  • Pergunta

  • Olá pessoal. Peço uma super ajuda.

    Tenho um arquivo XML assim:

    <?

     

    xml version="1.0" encoding="utf-8" ?>

    <

     

    Testanto>

    <

     

    tipo tipo="1">

    <

     

    campo visivel="false"></campo>

    </

     

    tipo>

    </

     

    Testanto>

    Gostario de recuperar o valor do "visivel" no c#.

    Para pegar o conteudo de dentro da tag eu consegui com o XPath.
    Mas pra saber se o "campo visivel" é false eu nao consigo... olhe até onde cheguei:

    //Abre o xml

     

    XPathDocument xpathDoc = new XPathDocument(nomeXML);

     

    // recebe o navigator associado

     

    XPathNavigator xpathNav = xpathDoc.CreateNavigator();

     

     

     

    // recebe o iterador com os ns que esto de acordo com a expresso XPath

     

    XPathNodeIterator xpathNodeIter = xpathNav.Select(string.Format("/Testando/tipo[@tipo = {0}]/campo[visivel]", 1));

    mas nao deu certo
    segunda-feira, 14 de março de 2011 14:45

Respostas

  • Amigo,

    Segue abaixo código fonte do XML que eu usei de exemplo:

    <?xml version="1.0" encoding="utf-8" ?>
    <testanto>
     <tipo tipo="1">
      <campo visivel="false">Teste1</campo>
     </tipo>
     <tipo tipo="2">
      <campo visivel="true">Teste2</campo>
     </tipo>
    </testanto>
    
    

    Segue o código fonte do .cs:

    private void Load_Xml()
        {
          XmlDocument doc = new XmlDocument();
          doc.Load(Server.MapPath("~/teste.xml"));
    
          XmlNodeList nodes = doc.SelectNodes("/testanto/tipo");
    
          foreach (XmlNode node in nodes)
          {
            Response.Write("tipo = " + node.Attributes["tipo"].Value + "<br>");
    
            foreach (XmlNode node2 in node.ChildNodes)
            {
              Response.Write("visivel = " + node2.Attributes["visivel"].Value + "<br>");
              Response.Write("campo = " + node2.FirstChild.Value + "<br>");
            }
          }      
        }
    

    O código é bem simples, se tiver alguma dificuldade para entender é só postar sua dúvida.

    Espero ter ajudado.


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"
    • Sugerido como Resposta Lucas Vandor terça-feira, 15 de março de 2011 21:57
    • Marcado como Resposta Harley Araujo quarta-feira, 16 de março de 2011 17:01
    segunda-feira, 14 de março de 2011 16:12

Todas as Respostas

  • Amigo,

    Segue abaixo código fonte do XML que eu usei de exemplo:

    <?xml version="1.0" encoding="utf-8" ?>
    <testanto>
     <tipo tipo="1">
      <campo visivel="false">Teste1</campo>
     </tipo>
     <tipo tipo="2">
      <campo visivel="true">Teste2</campo>
     </tipo>
    </testanto>
    
    

    Segue o código fonte do .cs:

    private void Load_Xml()
        {
          XmlDocument doc = new XmlDocument();
          doc.Load(Server.MapPath("~/teste.xml"));
    
          XmlNodeList nodes = doc.SelectNodes("/testanto/tipo");
    
          foreach (XmlNode node in nodes)
          {
            Response.Write("tipo = " + node.Attributes["tipo"].Value + "<br>");
    
            foreach (XmlNode node2 in node.ChildNodes)
            {
              Response.Write("visivel = " + node2.Attributes["visivel"].Value + "<br>");
              Response.Write("campo = " + node2.FirstChild.Value + "<br>");
            }
          }      
        }
    

    O código é bem simples, se tiver alguma dificuldade para entender é só postar sua dúvida.

    Espero ter ajudado.


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"
    • Sugerido como Resposta Lucas Vandor terça-feira, 15 de março de 2011 21:57
    • Marcado como Resposta Harley Araujo quarta-feira, 16 de março de 2011 17:01
    segunda-feira, 14 de março de 2011 16:12
  • Muiiito obrigado.

    O dia todo tentando aki e vc exemplificou e ficou otimo... vlw mesmo!

    segunda-feira, 14 de março de 2011 17:25
  • Fico feliz em ter ajudado.

    Só não esqueça de marcar como "resposta" o meu tópico, isso ajuda outras pessoas a encontrarem a solução mais rapidamente.

    Boa sorte.


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"
    segunda-feira, 14 de março de 2011 22:30