3
respostas

Nó atribuido xml

estou lendo um arquivo xml com o XmlDocument e o InnerText, consigo tranquilamente acessar as informações como do seguinte exemplo

<Product>
    <Details>Mouse</Details>

Mas no caso de um atributo

<Product>
    <Product id = "1">

Não sei como acessar, poderiam me ajudar?

3 respostas

Olá, Pedro! Bom dia.

Você vai ter que selecionar o nó desejado criando um objeto do tipo 'XmlElement' e usar o método 'GetAttribute("NomeAtributo")' dele.

Segue um exemplo do código:

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlElement root = doc.DocumentElement;

    // Check to see if the element has a genre attribute.
    if (root.HasAttribute("genre")){
      String genre = root.GetAttribute("genre");
      Console.WriteLine(genre);
   }

  }
}

Fonte: https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmlelement.getattribute?view=netframework-4.8

Funcionou super bem! Mas e no caso de eu querer pegar os valores sem ter q passa como no exemplo 'novel' só ir pegando em ordem?

Tenta isso aqui:

XmlElement root = doc.DocumentElement;
foreach (XmlAttribute attr in root.Attributes)
{
    Console.WriteLine(attr.Name);
    Console.WriteLine(attr.Value);
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software