2011-08-23 3 views
0

partie XML:comment savoir enfant attributs dans le fichier xml

<section name="header"> 
    <placeholder name="HeaderLeftPane"></placeholder> 
    <placeholder name="HeaderCenterPane"></placeholder> 
    <placeholder name="HeaderRightPane"></placeholder> 
</section> 

à chargement de la page i ont

XmlDocument XD = new XmlDocument(); 
     XD.Load(System.Web.HttpContext.Current.Server.MapPath("Test.xml")); 
    XmlNodeList nodeListName = XD.SelectNodes("layout/child::node()"); 
     foreach (XmlNode xNode in nodeListName) 
     { 
      string name = xNode.Attributes["name"].Value; 
      int child = xNode.ChildNodes.Count; 
      LblDisplay.Text += name + child; 
      LblDisplay.Text += "<br/>"; 
     } 

résultat est header3 .i veulent attraper tous les enfants attributs placeholdername .comment peut je l'attrape plz aide.

Répondre

0

Je pense que vous êtes en train de boucler tous les lieux, mais en passant outre les changements. ce que vous devez faire est dans la boucle foreach ajouter le nom à une liste, puis afficher plus tard dans textbox

exemple

XmlDocument XD = new XmlDocument(); 
XD.Load(System.Web.HttpContext.Current.Server.MapPath("Test.xml")); 
XmlNodeList nodeListName = XD.SelectNodes("section/placeholder"); 
IList<string> names = new List<string>(); 
foreach (XmlNode xNode in nodeListName) 
{ 
    string name = xNode.Attributes["name"].Value; 
    int child = xNode.ChildNodes.Count; 
    names.Add(name); 
} 

afficher les attributs comme celui-ci

string nameString = string.Empty; 
foreach (string name in names) 
{ 
    nameString += name + " "; 
} 

LblDisplay.Text = nameString; 
+0

merci pour une réponse rapide.Je veux dire que je ne peux que compter les nœuds enfants, mais incapable d'attraper là attrributs nom pour l'affichage.in ci-dessus je veux afficher 'HeaderLeftPane'' HeaderCenterPane' 'HeaderRightPane' sur lblDisplay.Any idée. –

+0

ok voir le code ci-dessus cela aide-t-il? – Bobby

1
 XmlDocument XD = new XmlDocument(); 
     XD.Load(System.Web.HttpContext.Current.Server.MapPath("Test.xml")); 

     XmlNodeList listChildNodes = XD.SelectNodes("//*[name()='placeholder']"); 

     List<string> names = new List<string>(listChildNodes.Count); 
     foreach (XmlNode nodeChild in listChildNodes) 
     { 
      names.Add(nodeChild.Attributes["name"].InnerText); 
     } 

     Console.WriteLine(string.Join(";", names.ToArray())); 
Questions connexes