2

XDocumentを作成するコードがあり、その中でSystem.Xml.Linqクラスを使用してXElementsを追加します。唯一の問題は、xmlノードに値がない場合、すでに閉じられているタグを返すことです。すなわち

 <Title />

しかし、開始タグと終了タグの両方を表示するXMLを作成することは、ちょっと達成できました。すなわち

<Title></Title>

価値はありませんが。このように見えるようにする方法はありますか?

PS:このコードをデータベースのデータ型xmlを受け入れるテーブル列の下に保存しているので、文字列を追加します。データベースで空が閉じられるので、FMLです。何か案は?

4

4 に答える 4

2

InnerTextXmlNodeに。を割り当ててみてください""。このアクションは明らかにそれを<> </>形に拡張させます。

于 2012-07-19T11:39:30.543 に答える
1

タグの値を。で設定してみてくださいstring.Empty

于 2012-07-19T07:58:13.213 に答える
1

この属性を使用して、[XmlElement(IsNullable = true)]ヌル値をで表すxsi:nil="true"ことができます。これは、私が得ることができる限り近いものでした。

私が見つけた唯一の代替手段は、XMLファイルを作成し、StreamReaderとStreamWriterを使用して完成したXMLドキュメントをStreamReaderを使用して文字列にロードし、このReplace()メソッドを使用してnullの可能性のある各タグを検索し、開始タグと終了タグに置き換えてから、 StreamWriterを使用して、XMLファイルを新しい文字列で上書きします。

オブジェクトをXMLにシリアル化するときのNull値の表現方法

于 2012-07-19T07:59:06.223 に答える
1

XDocument.WriteToメソッドを使用して、XDocumentをXmlWriterに書き込みます。XmlWriter.Createを介して取得した標準のXmlWriterをラップするカスタムXmlWriterを実装し、カスタムXmlWriterをWriteToメソッドに渡します。

カスタムXmlWriterは、WriteEndElementメソッドを除いて、すべての呼び出しを変更せずにラップされたXmlWriterに渡すだけです。

    public override void WriteEndElement()
    {
        wrapped.WriteFullEndElement();
    }
于 2012-07-19T12:15:48.003 に答える