136 votes

Comment lire la valeur d'attribut de XmlNode en C #?

Supposons que je reçois un XmlNode et que je veuille attribuer la valeur de attirbute "Name". Comment puis je faire ça??

        XmlTextReader reader = new XmlTextReader(path);

        XmlDocument doc = new XmlDocument();
        XmlNode node = doc.ReadNode(reader);

        foreach (XmlNode chldNode in node.ChildNodes)
        {
                **//Read the attribute Name**
            if (chldNode.Name == Employee)
            {                    
                if (chldNode.HasChildNodes)
                {
                    foreach (XmlNode item in node.ChildNodes)
                    { 

                    }
                }
            }
        }
 

Doc XMl:

 <Root>
    <Employee Name ="TestName">
    <Childs/>
</Root>
 

238voto

Konamiman Points 20578

Essaye ça:

 string employeeName = chldNode.Attributes["Name"].Value;
 

45voto

Ari Roth Points 1290

Pour développer la solution de Konamiman (y compris tous les contrôles nuls pertinents), voici ce que je suis en train de faire:

 if (node.Attributes != null)
{
   var nameAttribute = node.Attributes["Name"];
   if (nameAttribute != null) 
      return nameAttribute.Value;

   throw new InvalidOperationException("Node 'Name' not found.");
}
 

17voto

balexandre Points 36115

vous pouvez parcourir tous les attributs comme vous le faites avec des nœuds

 foreach (XmlNode item in node.ChildNodes)
{ 
    // node stuff...

    foreach (XmlAttribute att in item.Attributes)
    {
        // attribute stuff
    }
}
 

3voto

rahul Points 84185

Utilisation

 item.Attributes["Name"].Value;
 

obtient la valeur

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X