1

クラスにいくつかのプロパティがあり、そのプロパティの1つがXMLテキストを取得または設定したい場合、次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <SaveCode>QuiddityVer</SaveCode>
  <IsMainProject>fals</IsMainProject>
  <DesignerItems>
    <DesignerItem>
      <Quiddity>Play</Quiddity>
      <Name>Node_Play1</Name>            
      <LoopBodyInDesignerCanvas />
    </DesignerItem>   
</Root>

このxml式を設定および取得するための適切な変数タイプは何ですか?

私のクラスの私のプロパティは次のようなものです:

privte String _myxmlExpresion;
public String myxmlExpresion
        {
            get
            {
                return _myxmlExpresion;
            }
            set
            {
                _myxmlExpresion= value;
            }
        }

私のプロジェクトは multiTab で、各タブにはいくつかのノード (Visual DialPlan や Visual VXML Designer など) を表示するための DesignerItems があり、一部のノードには、クリックすると新しいタブを開くプロパティがあり、保存して保存します。このタブを XML ファイルで開きますが、ここでは、この新しいタブを追加の xml ファイルにしたくないので、プロパティに保存したいと思います。

4

3 に答える 3

2

単純な文字列またはXDocumentのいずれかを使用できます。

または、 XmlDocumentを使用することもできます。(msmucker0527 に感謝)

于 2012-12-05T18:26:02.567 に答える
0

適切な方法の 1 つは、すべての新しいタブを別のファイルとして保存し、プロパティに新しいタブのアドレスを設定して、XML ドキュメントを開いて保存することです。

于 2012-12-06T10:35:08.280 に答える
0

XML データを保持するためのクラスを作成します。

public class Foo
{
    public string SaveCode { get; set; }
    public bool IsMainProject { get; set; }
    public List<DesignerItem> DesignerItems { get; set; }
}

public class DesignerItem
{
    public string Quiddity { get; set; }
    public string Name { get; set; }
    public string LoopBodyInDesignerCanvas { get; set; }
}

そしてあなたのxmlを解析してください:

XElement root = XElement.Parse(xml);
var foo = new Foo()
{
    SaveCode = (string)root.Element("SaveCode"),
    IsMainProject = (bool)root.Element("IsMainProject"),
    DesignerItems = root.Element("DesignerItems")
                        .Elements("DesignerItem")
                        .Select(di => new DesignerItem()
                        {
                            Quiddity = (string)di.Element("Quiddity"),
                            Name = (string)di.Element("Name"),
                            LoopBodyInDesignerCanvas = (string)di.Element("LoopBodyInDesignerCanvas")
                        }).ToList()
};

解析されたオブジェクトをタイプのプロパティとして保存しますFoo(もちろん、xml が保持するデータにはもっと良い名前があると思います)。これにより、強く型付けされた言語のすべての利点が得られます。

if (yourObject.Foo.IsMainProject)
    // ...

ところで、xml にタイプミスがありDesignerItemsます。要素の終了タグがありません。そして、false値にタイプミスがあります。

于 2012-12-05T18:47:06.223 に答える