2010-01-04 8 views
1

Je veux lire ce fichier xml en utilisant Id sur <page> tag.parse nœuds utilisant C#

<?xml version="1.0" encoding="utf-8" ?> 
    <pages> 
     <page id="NewsWatchVideo"> 
     <HeaderText>Newswatch</HeaderText> 
     <BellowText>'abc'.In this video you will see how the press responded to the .</BellowText> 
     <FilePath>FLVPlayer_Progressive.swf</FilePath> 
     <NextURL>/Home/OutStory</NextURL> 
     </page> 
     <page id="OutStory"> 
     <HeaderText>OUR STORY</HeaderText> 
     <BellowText>Join the founders of United First Financial as they talk about how the business and concept was formed.</BellowText> 
     <FilePath>FLVPlayer_Progressive.swf</FilePath> 
     <NextURL>/Home/MMaoverViewVideo</NextURL> 
     </page> 
    </pages> 

Comment puis-je obtenir toutes les données par identifiant? Je veux utiliser LINQ to XML pour effectuer cette tâche.

+1

Je ne comprends pas ce que vous entendez par « analyser les données par ID "? Voulez-vous obtenir une liste d'ID? Voulez-vous obtenir toutes les données pour un ID? Voulez-vous parcourir les ID dans l'ordre? –

+0

je supposais 'obtenir toutes les données pour un ID', mais oui, c'est une question très valide –

+0

oui vous avez raison @@ David – Pankaj

Répondre

6

Étant donné que votre XML est chargé dans XmlDocument variable 'doc':

XmlNode page = doc.SelectSingleNode("//page[@id='OutStory']"); 

à savoir si vous voulez utiliser une variable id:

XmlNode page = doc.SelectSingleNode("//page[@id='" + pageId + "']"); 

qui deux vous permettra de le faire:

string headerText = page.SelectSingleNode("./HeaderText").InnerText; 

EDIT

Si vous travaillez avec LINQ to XML, votre variable doc sera du type de données XDocument et vous écrirez:

XElement page = doc.Descendants("page").Where(p => p.Attribute("id").Value == "OutStory").FirstOrDefault(); 
string headerText = page.Descendants("HeaderText").First().Value; 
+0

Merci @@ David ... – Pankaj

+0

Cher @@ David comment puis-je faire cette tâche en utilisant LINQ à XML – Pankaj

+0

@Pankaj, voir mon edit –