2016-05-02 1 views
0
<Tables> 
    <Table name="Test"> 
    <tablename>TestTable</tablename> 
    <refTable>NULL</refTable> 
    <refTableIDColumn>NULL</refTableIDColumn> 
    </Table> 
</Tables> 

Ci-dessus est mon entrée XML. Je suis en mesure d'extraire les noeuds par nom en utilisant le tableau ci-dessous le codecomment obtenir Nom du noeud en XML

XmlNodeList companyList = doc.GetElementsByTagName("Table"); 

Je veux que le nom qui est donné à Table nœud. Par exemple, ici, je veux le texte comme "Test". Comment puis-je obtenir cela. S'il vous plaît aider.

+4

Qu'est-ce que vous call "name" est vraiment le _attribute_ dont le nom est "name". Utilisez toutes les méthodes que C# a pour accéder aux _attributs_ d'une balise. –

+0

votre tag 'Tables' n'est pas fermé correctement, s'il vous plaît modifier le xml en question – Mostafiz

Répondre

1

Le XmlNodeList peut être filtré/interrogé avec XPath. Dans votre cas, vous voulez rechercher l'attribut name d'un Table qui voudrait ceci par exemple:

var tableNames = doc.SelectNodes("//Table/@name"); 

Vous résultat sera une collection de XmlAttributes, le nom réel peut être récupéré avec la propriété InnerText.

See it in action on DotNetFiddle

BTW: votre dernière balise xml manque un /

1

Supposons que votre fichier xml dans C lecteur nommé test.xml alors vous pouvez obtenir le nom en utilisant ce code

XDocument xDoc = XDocument.Load(@"C:\test.xml"); 

XElement root = xDoc.Element("Tables"); // select root 
XElement elm1 = root.Element("Table"); // get elm1 == null 
string name = elm1.Attribute("name").Value;