0

異なる制御ファイルを持つ2つのプログラム間でデータを交換する必要があるプロジェクトで立ち往生しています。プログラムAはXMLファイルを作成するだけですが、プログラムBは2つの「列」を持つ配列として入力を必要としますが、変換を行うにはどうすればよいですか?

例:xmlは次のようになります。

` <Presentation>
  <Options Name="1">
  <Output>MyOutPut</Output>
    <Slides Name="1">
    <Template>Template2</Template> 
      <Diagram Name="Name4">
         <More Elements...>
      </Diagram>
    </Slides>
    </Options>
  </Presentation>`

出力は次のようになります。

 `
    Presentation ""
    Options 1
    Output Myoutput
    Slides 1
    Template Template2

...
`

しかし、どうすればこれを達成できますか?私はvb.netとLINQを使用していますが、この問題を解決する方法がわかりません。いくつかのLINQクエリを試しましたが、個々のノードまたは属性しか取得できないため、別のアイデアを試す方がよいと思います。アドバイスをいただければ幸いです。

4

1 に答える 1

0

残念ながら、VBコードを提供することはできませんが、このC#スニペットがお役に立てば幸いです。

void Main()
{
    var doc = XElement.Load(@"path-to-the-file");

    doc.DescendantsAndSelf()
       .Select(ElementSelector).Dump();
}

private static KeyValuePair<string, string> ElementSelector(XElement e)
{
    var name = e.Name.ToString();
    var value = String.Empty;
    if (e.Descendants().Any())
    {
        if (e.Attributes().Any())
        {
            value = e.Attributes().First().Value;
        }
    }
    else
    {
        value = e.Value;
    }
    return new KeyValuePair<string, string>(name, value);
}
于 2012-06-06T10:59:25.177 に答える