2011-12-14 18 views
1

XMLにlinqを使用して大規模なXMLファイルを解析したいのですが、どのように正確に行うことができないのでしょうか。 <dac>タグの後ろにある<name>タグをすべて読みたいです。私は言及する必要があります私は多くの<name> XMlファイルのタグを持っています私はちょうど<dac>の後に来るものを読んでみたい。 linq to xmlを使ってこれをどうやって行うことができますか?
私は、コードは私にそのような値を返したい:(SSS, HHH, HHH Panel)linq to xmlを使用してXMLを解析する

<?xml version="1.0" encoding="UTF-8"?> 

<installationTree> 
    <folder> 
    <id>1</id> 
    <name>Company</name> 
    <full-path>Door List/Company</full-path> 
    <nodes> 
     <controller> 
     <id>9</id> 
     <name>9016 Panel</name> 
     <description/>   
     <full-path>Door List/Company/9016 Panel</full-path> 
     <nodes> 
      <dac> 
      <isOneDoorController>false</isOneDoorController> 
      <id>9</id> 
      <name>SSS</name> 
      <description/> 
      <address>1</address> 
      <active>true</active> 
      <externalId>ID:9_20111123_121106</externalId> 
      <mode>standard</mode>  

      <doorCodes/> 
      <full-path>Door List/Company/9016 Panel/SSS</full-path> 
      <nodes/> 
      </dac> 
      <dac> 
      <isOneDoorController>false</isOneDoorController> 
      <id>10</id> 
      <name>HHH</name> 
      <description/> 
      <address>2</address> 
      <active>true</active> 

      <doorCodes/> 
      <full-path>Door List/Company/9016 Panel/HHH</full-path> 
      <nodes/> 
      </dac> 
     </nodes> 
     </controller> 
     <oneDoorController> 
     <id>8</id> 
     <name>HHH Panel</name> 
     <description/> 
     <serialnumber>00:06:8e:30:24:24</serialnumber> 
     <timezone>Iran</timezone> 
     <active>true</active> 
     <docUpdater/> 
     <nodes> 
      <dac> 
      <isOneDoorController>true</isOneDoorController> 
      <id>8</id> 
      <name>HHH Panel</name> 
      <description/> 
      <address>1</address> 
      <active>false</active>    
      <doorCodes/> 
      </dac> 
      <full-path>Door List/Company/HHH Panel</full-path> 
      <nodes/> 
     </nodes> 
     </oneDoorController> 
    </nodes> 
    </folder> 
</installationTree> 
+0

'dac'タグの後に' name'タグ*を入れたいですか? –

+2

無効なXMLを送信しました。それを修正してください。 – adatapost

+0

@DanielHilgarth dacタグのブロック内のファーストネームタグ – Am1rr3zA

答えて

3

XML文書をロードして、@Henk Holtermanが提案するステートメントを記述する必要があります。

string file = @"c:\file.xml"; 
XDocument doc = XDocument.Load(file); 
var names= doc.Root.Descendants("dac").Elements("name"); 

foreach (var t in names) 
    Console.WriteLine(t.Value); 
2

var names = doc.Root.Descendants("dac").Elements("name"); 

これは、各<dac>が高々1が含まれていると仮定し何かのようにここで

は私のXMLファイルの簡単なサンプルです<name>要素。

+0

+1子孫( "xxx")はIEnumerable を返します。 – adatapost

+0

あなたは完全なコードを書いてください。 – Am1rr3zA

関連する問題