2016-03-20 26 views
0

C#を使用して、電子ノードの内部テキストのすべてのデータをリストに格納し、関連ノードの内部テキストのすべてのデータを各自の個別リストに格納する必要があります。今のところ私は最初の "電子メール"ノードと最初の "関連"ノードだけをリストに格納することができました。私はこれを取得:enter image description here同じ名前のノードの内部テキストをリストに保存する方法は?

、私はこの

enter image description hereを取得する必要があるとき。

正解を得るにはどうすればよいですか?これは私のxmlファイルです:

<? xml version="1.0" encoding="utf-8"?> 
<People> 
    <Person> 
    <Name>Toni</Name> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Related>Friend1</Related> 
    <Related>Friend2</Related> 
    </Osoba> 
    <Osoba> 
    <Name>Deni</Name> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Related>Friend3</Related> 
    <Related>Friend4</Related> 
    </Osoba> 
</People> 
+2

は、あなたがデータを抽出する方法を示しています。 – Cicero

+0

」が「」で終了しています。「電子メール」または「関連」というフィールド名を同じレコードに複数回使用する方法もありません。そのXMLファイルが酔っているということを作りました。 –

答えて

1

あなたが間違っているので投稿したものの代わりに次のXMLを仮定しています。

<?xml version="1.0" encoding="utf-8"?> 
<People> 
    <Person> 
    <Name>Toni</Name> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Related>Friend1</Related> 
    <Related>Friend2</Related> 
    </Person> 
    <Person> 
    <Name>Deni</Name> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Email>[email protected]</Email> 
    <Related>Friend3</Related> 
    <Related>Friend4</Related> 
    </Person> 
</People> 

私はLINQ to XMLを使用しています。(もう一つの方法は、XmlDocumentを使用することです)

 String path = "Path of your xml file"; 
     XDocument doc = XDocument.Load(path); 
     var nodes = doc.Descendants("Person"); 
     foreach (XElement node in nodes) 
     { 
      var name = node.Element("Name").Value; 
      var emails = node.Elements("Email").Select(x => x.Value); 
     } 
関連する問題