2017-01-24 15 views
1

に私はここにチュートリアルを追いました。私のプログラムで は、ツリービューWPF XML

enter image description here

iは、ツリービューからベースのXMLを作成する必要が

これは、出力は私が作成する方法を少し知っている

<div TYPE="BODY_CONTENT"> 
    <div TYPE="PARAGRAPH" ORDER="1"> 
     <div TYPE="TEXT"> 
     <fptr> 
      <area name="John Doe"/> 
      <area name="Jane Doe"/> 
      <area name="Sammy Doe"/> 
     </fptr> 
     </div> 
    </div> 
    <div TYPE="PARAGRAPH" ORDER="2"> 
     <div TYPE="TEXT"> 
     <fptr> 
      <area name="Mark Moe"/> 
      <area name="Norma Moe"/> 
     </fptr> 
     </div> 
    </div> 
</div> 

ようになっているはずなXMLにする方法でありますxml(ここに私の質問に答えた人から、私は多くのxml関連の質問をしています)しかし、私はこの種のXMLを作成する方法を経験していません。

これまでのところ、私は唯一のツリービューXMLで

foreach (Family item in trvFamilies.Items) 
      { 
       foreach (var itm in item.Members) 
       { 
        Console.WriteLine(itm.Name); 
       } 
      } 

のループを持っています。順序は、ツリービュー

の親からベースとFPTRタグ内の値は、あなたがあなた自身のXMLの作成方法についての詳細を読む必要があるツリービュー

答えて

1

に各親ノードの子ノードから来た、ありさ多くの質問についてthis

また、XmlDocumentとxmlDocumentのメソッドCreateElementについて読むことをお勧めします。これは、カスタムXmlを作成するのに必要なすべてです。

編集:申し訳ありませんがXMLシリアル化に関するすべてのもののための主な情報源を忘れる:link :)

0

もう一度質問します。いくつかの参考のためにすべてを見ていると、私はjdwengのコメントを読んで、それは私の問題を解決するため、ここにリンク

add new Element to a specific part of xml tree

XDocument doc = new XDocument(new XElement("div", new XAttribute("TYPE", "BODY_CONTENT"))); 
      XElement title = doc 
       .Descendants("div") 
       .Where(x => (string)x.Attribute("TYPE") == "BODY_CONTENT") 
       .FirstOrDefault(); 
      int i = 1; 
      foreach (Family item in trvFamilies.Items) 
      { 
       title.Add(new XElement("div", new XAttribute("TYPE", "PARAGRAPH"), new XAttribute("ORDER", i.ToString()))); 
       XElement text = doc 
         .Descendants("div") 
         .Where(x => (string)x.Attribute("ORDER") == i.ToString()) 
        .FirstOrDefault(); 
       title.Add(new XElement("div", new XAttribute("TYPE", "TEXT"), new XElement("fptr", new XAttribute("order", i.ToString())))); 

       foreach (var itm in item.Members) 
       { 
        XElement area = doc 
         .Descendants("fptr") 
         .Where(x => (string)x.Attribute("order") == i.ToString()) 
         .FirstOrDefault(); 
        area.AddFirst(new XElement("area", new XAttribute("name", itm.Name))); 
       } 
       i++; 
      } 
      Console.WriteLine(doc); 
があるされてアイブ
関連する問題