2016-06-09 11 views
-2

Ich habe eine xml aussehen wie diesesbekommen xml Kinderknoten Werte

<customlocation> 
    <path>xxxxx</path> 
    <filetype>xxxxx</filetype> 
    <filetype>xxxxx</filetype> 
    <filetype>xxxxx</filetype> 
       . 
       . 
       . 
    <filename>xxxxx</filename> 
    <filename>xxxxx</filename> 
    <filename>xxxxx</filename> 
       . 
       . 
       . 
    <delete>xxxxx</delete> 
</customlocation> 
<customlocation> 
    <path>xxxxx</path> 
    <filetype>xxxxx</filetype> 
    <filetype>xxxxx</filetype> 
    <filetype>xxxxx</filetype> 
       . 
       . 
       . 
    <filename>xxxxx</filename> 
    <filename>xxxxx</filename> 
    <filename>xxxxx</filename> 
       . 
       . 
       . 
    <delete>xxxxx</delete> 
</customlocation> 
       . 
       . 

Sie können so viele customlocation-Tags haben, wie Sie -dynamic- wollen, und ich kann diese Tags einfach wie diese:

  XElement doc = XElement.Load(xmlFilePath); 
      foreach(XElement elm in doc.Descendants().Elements("customlocation")) 
     { 

aber das Problem ist, wie innerhalb dieses für Dateityp und den Dateinamen Tags suchen i für diese für lange Zeit gesucht, aber bis jetzt kein Glück so bitte helfen dank alraedy

+0

Was möchten Sie suchen? und was ist Input und erwartete Ausgabe? –

+0

Ich suche nach Dateityp und Dateinamen-Tags, um ihre Werte zu erhalten und in einem Array zu speichern Hinweis: Sie können es nicht sehen, weil ich herausgefunden habe, sie in Tags setzen sie unsichtbar machen –

+0

@HariPrasad ich kann nicht einfach String sss = verwenden elm.Element ("Dateityp"). value; Es muss Iteration abhängig sein, wie viele Tags wir haben danke schon für Ihren Kommentar –

Antwort

0

Elements nur diese Elemente findet, die direkten Nachkommen sind, findet Descendants Kinder auf jeder Ebene (dh Kinder, Enkelkinder)

Da Sie eine Reihe von filetpe und filename bauen möchten, können Sie könnte das tun.

XDocument doc = XDocument.Load(filepath); 
var filetypes = doc.Descendants("filetype").Select(x=>x.Value).ToArray(); 
var filenames = doc.Descendants("filename").Select(x=>x.Value).ToArray(); 

prüfen diese Demo

+0

, die tatsächlich funktionierte ABER das gibt alle Dateityp Werte in einem Array zurück Ich sollte in der Lage sein, Dateityp Werte von jedem Customlocation-Tag zu unterscheiden gibt es eine Möglichkeit, das zu tun? danke –

+0

Es ist möglich, aber welches Attribut möchten Sie verwenden, um benutzerdefinierte Position zu unterscheiden? –

+0

Ich kann Attribute wie diese hinzufügen würde das helfen ?? –

0

Tr y diese

List<string> Values = new List<string>();  
XDocument doc = XDocument.Load(Server.MapPath("Server.xml")); 
foreach(XElement elm in doc.Descendants().Elements("customlocation")) 
{ 
    foreach (XElement ele in elm.Elements("filetype")) 
    { 
    Values.Add(ele.Value); 
    } 
}