XmlWriter を使用して C# で XML ファイルを作成しています。メソッドを使用して要素を記述でき、WriteStartElement()
メソッドを使用してこの要素に属性を追加できますWriteAttributeString()
。しかし、ドット表記を使用して属性を追加したい場合は、どうすればよいですか?
<Element Attribute1="Value">
<Element.Attribute2> //How can i add attribute in this Notation.
//Add Value of Attribute2
</Element.Attribute2>
</Element>
電話できることはわかっていますWriteStartElement("Element.Attribute")
が、よりクリーンなアプローチを探しています。これを行う他の方法はありますか?
編集1:
私は階層的な(ツリーの形で)オブジェクト(objなど)を持っています。このツリーの各ノードには、さらにノードを含めることができるいくつかのプロパティがあります。このオブジェクトを Xml に保存しています。そのために、XmlWriter を使用しています。実行時に、obj を反復処理し、GetType().Name を使用してノードのタイプを読み取り、それを渡して XmlNode を書き込みGetType().GetProperties()
、それを使用してそのノードのすべてのプロパティを取得し、次に foreach を使用して PropertyInfo 配列を 1 つずつ調べます。 PropertyInfo の Name を属性として書き込みますが、ノードに割り当てられたプロパティがある場合は、上記のドット表記を記述する必要があります。PropertyInfo とオブジェクトを渡すだけで、目的の形式で書き込むメソッドを探しています。
助けてくれてありがとう!
編集2:
特定のノードに対して、Height や Width のようなプロパティ、コレクションであり Xml の階層に暗黙的に存在する Children のようなプロパティ、いくつかのプロパティを持ち、それぞれが親の下のノードで表される Resources のようなプロパティがあります。ただし、保存中は次のように記述されます。
<Parent.Resources>
<Resource1 ...../>
<Resource2 ...../>
</Parent.Resources>
手伝ってくれてありがとう!