2017-10-01 14 views
-1

私はxmlファイルを編集できるように小さなアプリケーションを作成しようとしています。XMLは特定の属性を読み取る

私はこのようなXMLファイルだ:

<item id="1" name="item_01"> 
    <property name="Meshfile" value="path_to_mesh_file" /> 
    <property name="Material" value="organic" /> 
    <property name="HoldType" value="23" /> 
    <property name="Stacknumber" value="50" /></property> 
</item> 
<item id="2" name="item_02"> 
    <property name="Meshfile" value="path_to_mesh_file" /> 
    <property name="Material" value="organic" /> 
    <property name="HoldType" value="23" /> 
    <property name="Stacknumber" value="50" /></property> 
</item> 
<item id="3" name="item_03"> 
    <property name="Meshfile" value="path_to_mesh_file" /> 
    <property name="Material" value="organic" /> 
    <property name="HoldType" value="23" /> 
    <property name="Stacknumber" value="50" /></property> 
</item> 
<item id="4" name="item_04"> 
    <property name="Meshfile" value="path_to_mesh_file" /> 
    <property name="Material" value="organic" /> 
    <property name="HoldType" value="23" /> 
    <property name="Stacknumber" value="50" /></property> 
</item> 

をしかし、私は、コンボボックスにMeshfilesのすべての値を追加する必要がありますが、どのようにイムわかりません。

+0

'ユーザがxmlファイルを編集できるアプリケーション'サウンドリベット!完了したら購入してダウンロードする方法を教えてください!私はいつもXMLファイルを編集する方法を疑問に思っていました... –

答えて

0

あなたのXMLには削除する必要のある余分なタグがあります。投稿されたXMLはうまく構成されていないので、私は断片として読む必要がありました。以下のコードを参照してください

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XmlReaderSettings settings = new XmlReaderSettings(); 
      settings.ConformanceLevel = ConformanceLevel.Fragment; 

      XmlReader reader = XmlReader.Create(FILENAME, settings); 

      List<string> meshFiles = new List<string>(); 
      while (!reader.EOF) 
      { 
       if (reader.Name != "property") 
       { 
        reader.ReadToFollowing("property"); 
       } 
       if (!reader.EOF) 
       { 
        XElement property = (XElement)XElement.ReadFrom(reader); 
        if ((string)property.Attribute("name") == "Meshfile") 
        { 
         meshFiles.Add((string)property.Attribute("value")); 
        } 
       } 
      } 
     } 
    } 
} 
+0

実際には、余分なタグを削除することはできません。なぜなら、私はそれらのXMLの作成の背後にあるわけではないからです。私はすべてのメッシュファイルをコンボボックスにリストしたいだけです Btw ..私がvs2015で使用しようとするとあなたのコードがうまくいかない –

+0

申し訳ありませんが、私の側でミスしています。 –

関連する問題