問題タブ [xml-deserialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
17 に答える
751296 参照

c# - XML ドキュメントを逆シリアル化する方法

この XML ドキュメントを逆シリアル化する方法:

私はこれを持っています:

.

.

それはうまくいかないようです:-(

0 投票する
7 に答える
159569 参照

c# - XMLをリストに逆シリアル化することは可能ですか??

次の XML があるとします。

そして、次のクラス:

XmlSerializerxmlをに逆シリアル化するために使用することは可能List<User>ですか? その場合、どのタイプの追加属性を使用する必要がありますか、またはXmlSerializerインスタンスを構築するためにどの追加パラメーターを使用する必要がありますか?

User[]少し劣る場合は、配列 ( ) を使用できます。

0 投票する
1 に答える
1341 参照

xml - クラス値を設定しない XML デシリアライズ

私は自分が間違っていることを見ていません。何が行われているかを確認するために、コンストラクターの値を "TEST" に変更しました。XML が読み込まれた後 (XML が何であるかを確認しました)、クラスの値は "TEST" のままです。他にアイデアはありますか?私はこのプロセスを別のクラスで既に行っていますが、私も一部の同僚も違いを見つけることができませんでした。

XML:

CLASS: (XMLElement なしで試し、確認のためだけに XMLAttribute を使用してみましたが、変化はありません)

XML 処理クラス:

0 投票する
4 に答える
2143 参照

c# - xml-逆シリアル化

通常はシリアル化されているクラスを逆シリアル化しようとしています。

クラスMyClassをエラーなしでシリアル化しましたが、逆シリアル化しようとすると、セクションに空のプロパティを持つクラスMyClassが表示されました(このプロパティは空でした)。

これはなぜですか、この問題を解決する方法は?

xmlの例:

コードのシリアル化と逆シリアル化:

シリアル化/逆シリアル化に使用されたクラス:

シリアル化:すべて良いです!

デシリアリザトイン:すべてが悪い!

ありがとう、オクサナ

0 投票する
3 に答える
3438 参照

xml-serialization - デフォルト値を使用した C# XML デシリアライゼーション

C#、.NET 3.5 の XmlSerializer を介してシリアル化/逆シリアル化されているオブジェクトを取得しました。プロパティの 1 つ (および将来的にはさらに追加) はコレクションです: T は列挙値です。これにより、正常にシリアル化/逆シリアル化されます。

また、シリアル化されたバージョンに値が設定されていない場合に備えて、「デフォルト値」メカニズムを使用してオブジェクトのデフォルト値を提供しています。簡単な例として、これがドンです。

このコードは、オブジェクトの構築時に SomeSetting の既定値を設定するのに適切に機能します。

ただし、SomeSetting の値を持つ xml ファイルを逆シリアル化する場合、この既定値の設定が問題を引き起こします。xml デシリアライザーは SomeSetting コレクションを「リセット」しません。これは、クリーンアップして新しいデータを入力しません。むしろ、既存のデータに追加されます。したがって、xml ファイルにシリアル化された Value1 が含まれている場合、そのファイルを逆シリアル化すると、格納されている値として {Value1, Value2, Value1} を持つ SomeSettings になります。

xml ドキュメントに SomeSetting のデータがない場合にデフォルト値が存在できるようにする方法と、xml ドキュメントにデータがある場合に SomeSetting 値を大規模に置き換える方法が必要です。これどうやってするの?

参考までに、ドキュメント内のプロパティはこれだけではありません。ドキュメントは存在し、他の「単純な」値に対してシリアライズ/デシリアライズされています。ただし、これは問題を引き起こしているプロパティです。今、これをたくさん行う必要があるため、このシナリオをサポートする必要があります。

0 投票する
1 に答える
2724 参照

c# - Name 属性を持つ C# XML 文字列要素

文字列プロパティを使用してシリアライゼーション/デシリアライゼーション用の ac# オブジェクトを作成しようとしています。プロパティは要素を生成し、属性も持つ必要があります。

例えば:

プロパティが文字列の場合、属性を追加する方法がわかりません。また、コメントが Name プロパティと Value プロパティを持つオブジェクトである場合は、次のように生成されます。

何か案は?

0 投票する
3 に答える
5523 参照

c# - C#XML xmlタグの後にXMLにコメントを挿入

XML をシリアライズ/デシリアライズするために C# オブジェクトを使用しています。

シリアル化中に XML ファイルにコメントを追加したいのですが、このコメントは<!-- comment --> 標準の xml タグの後の基本になります。<?xml version="1.0" encoding="UTF-8"?>

このコメントはデシリアライズする必要はありません。xml ファイルを作成した製品とバージョンを示す基本的なコメントです。

0 投票する
2 に答える
11372 参照

c# - System.InvalidOperationException が処理されませんでした - XML シリアル化 C#

XML Serialization を使用して xml ドキュメントを作成しました。

このように見えます

これを作るための私のコード

}

今、シリアル化を解除しようとすると、このエラーが発生します

なぜこれが起こっているのかわかりません。

いくつかの副次的な質問 - 主な問題が解決された後に回答してください

必要がない限り、これら 2 つの質問について新しいフォーラム投稿を作成したくありませんでした。

  1. オブジェクト型を与えることが重要なのはなぜですか? すべてのフィールドを文字列として作成しないのはなぜですか?

    /li>

この場合、Guid を取得するのは、シリアル化を解除するときだけなので、後で文字列から Guid に変換する必要はありませんか?

これが正しければ、他の人から xml ファイルを取得し、それをデシリアライズしたい場合、そこからどのオブジェクトが出てくるかをどのように知ることができますか? たとえば、私の「OutOf」が実際に null 許容の 10 進数の型であることをどのように知ることができますか? 実際、C# はどのようにしてそれを認識しているのでしょうか。これがそのタイプであるということを示唆するものは何も見当たりません。

  1. 実際にシリアル化を解除するとき、どうすれば foreach ループを作成できるのか疑問に思っています。「MyWrapper」オブジェクトのリストをそれぞれ調べたいので。しかし、MyWrapper には Task オブジェクトのコレクションがあります。では、foreach ループ内に for ループを作成する必要がありますか? それとももっと良い方法がありますか?

ありがとう

0 投票する
19 に答える
278355 参照

python - XML文字列を辞書に変換するには?

ソケットから XML ドキュメントを読み取るプログラムがあります。simplejsonDjangoのライブラリで行われるのと同じ方法で、Python辞書に直接変換したい文字列に格納されたXML文書があります。

例として挙げます:

次にdic_xml、次のようになります{'person' : { 'name' : 'john', 'age' : 20 } }

0 投票する
1 に答える
1398 参照

wcf - WCF、XmlRoot、およびオプションのパラメーター

私は WCF サービスを持っていますが、このサービスで送受信される XML をさらに制御する必要があるため、DataContracts を使用できません。そのため、私は XmlRoot と XmlElement を使用しています...私が今直面している問題は、受信した xml が逆シリアル化されるクラスとシリアル化された応答の両方が同じルート名を持つ必要があることです。これらのクラスの両方:

ルート名が既に使用されているというエラーが表示されます。これに対する簡単な回避策はありますか?応答クラスを別の名前空間に配置しようとしましたが、うまくいかないようです。

一部の変数がシリアル化される応答クラスに設定されていない場合、それらをシリアル化して応答で返す必要はありません...これを行うために欠落しているオプションはありますか...私はできましたDataContract でこれを行うには、XmlElements でそれを理解することはできません