問題タブ [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.
c# - XMLの逆シリアル化
<accessmode>
特定ののxml内のノードにアクセスしようとしています<action>
。
以下のコードで試してみました。
<accessmode>
はのarrayitemの下の要素なので、試してみました。しかし、私は値をnullとして取得しています。どんな助けでもありがたいです。
c# - 新しいアカウントの Facebook 応答で XML 例外を逆シリアル化する
Facebook-c-sharpを使用して Facebook に写真をアップロードしています。このコードは問題なく動作しますが、Facebook の新しいアカウントの場合、このコードには問題があるようです。Facebook の新しいプライバシー ポリシーと関係があるのではないかと考えました。さらに、上記のコードの作成者は新しいリリースの作業を停止しました。問題はアルバムの作成にあるようです。FBの古いアカウントで、アルバムが作成され、写真が正常にアップロードされます。新しいアカウント (最近、約 20 日前に作成) の場合、フォト アルバムは作成されますが、Facebook が XML 応答を返すと、XML を逆シリアル化しようとすると XMLException がスローされます。
古いアカウントの XML 応答は次のとおりです。
新しいアカウントの xml 応答は次のとおりです。
私が取得している XMLException は以下のとおりです (繰り返しますが、これは新しいアカウントでのみ発生しています。古いアカウントのデシリアライズは正常に機能します)。
ご覧のとおり、Facebook からの古いアカウントと新しいアカウントの両方の XML 応答は似ています。しかし、まだ新しいアカウントのデシリアライズは失敗します。なぜこうなった?両方の xml ファイルで見つけた唯一の違いは、2 番目の XML ファイルの (albumid) に「アンダースコア _」が存在することでした。しかし、私が知る限り、アンダースコアは有効なxmlであり、解析に問題はないはずですか? なぜこのエラーが発生するのか誰か教えてください。
編集:
私はそれを働かせました。前述のように、アンダースコアが問題の原因でした。私がそれをチェックしなかったのは、私の側ではかなりばかげていました。C# コードエイドでは long と宣言されていました。アンダースコアを含む文字列は long に逆シリアル化できないため、例外が発生していました。Facebook からの xml 応答を xml ファイルにコピーし、xsd Facebook.xml と xsd Facebook.xsd を実行して Facebook.cs を取得しました。生成されたcsファイルを私が持っているものと比較したところ、援助は生成されたcsではStringとして宣言され、ファイルではlongとして宣言されていることがわかりました。
.net - .Net Xml デシリアライゼーション
私は次のXElementを持っています
このオブジェクトに逆シリアル化しようとしています
この型は問題なく動作しますが、2 つの Record ノードをオブジェクトの Record リストに入れることができません。
ISerializable をオーバーライドしてカスタム コードを記述しなくても可能ですか?
c# - XMLSerializer が xml ドキュメントのデシリアライズに失敗する
私はC#の初心者です。xml 応答を返す Java REST サービスがあり、C# XmlSerializer を使用して xml ドキュメントを逆シリアル化しようとしています。サンプルの xml ドキュメント応答を以下に貼り付けます。
この xml ドキュメントを Document オブジェクトに逆シリアル化すると、正常に動作します。私のドキュメントクラスは下に貼り付けられています
私のメイン プログラムでは、試してみると xmlNodes の配列を取得します。
サーバー側の Java REST サービス実装では、fields は実際には、インターフェースの 3 つの実装のインスタンスを含む配列リストです。(リストには、カスタム ビジネス オブジェクトである ScalarFieldImpl または ArrayFieldImpl を含めることができます)。
XmlSerializer を使用して、この xml フィールドを ScalarFieldImpl または ArrayFieldImpl にデシリアライズしたいと考えています。可能か知りたいのですが?もしそうなら、どうすればいいですか?
c# - Overriding incoming invalid datetime values in webservice
I'm currently writing a C# webservice that has to match an existing wsdl, and my webservice is called by a third party webservice (My webservice acts as a callback).
However I'm being passed invalid values, and the third party webservice is unwilling to change their webservice.
I'm getting: '2010-10-24 12:12:13' type strings in the xml as a DateTime, (which doesn't meet the spec as it has to be '2010-10-24T12:12:13') Is there any way to override the XML Serialization so that it still matches the wsdl but accepts "anything"?
c# - この XML を逆シリアル化できない
Last.fm の API で遊んでいました。彼らが返すトップ アーティストの XML ファイルは、次のような構造になっています。
これが私がそれを非現実化する方法です。
lfmStatus というクラスがあります。
そしてクラスアーティスト:
そして、次のコードを使用して逆シリアル化します。
さて、すべてのアーティストを囲む topartists タグがなければ、このコードは XML に対してうまく機能します。しかし、そうなので、それを処理するためにコードを変更するにはどうすればよいですか? 別のクラスを追加する必要があると仮定しています。
powershell - シリアル化されたDataTableをPowerShellにロードする-DataTableではなくDataRowsの配列を返します
PowerShellでDataTableを保存およびロードしようとしています。私はそれをこのように保存します:
次のようにロードします。
しかし、私が返すタイプは、DataTableではなくRowsの配列です!これは、DataTableを必要とする関数に渡す必要があり、1つにキャストできないため、大きな問題を引き起こしています。
どんな助けでも大歓迎です、ありがとう。
.net - InnerXMLを.NETのオブジェクトに逆シリアル化します
無制限のコレクションを含む大きなxmlファイルを使用しています。アイデアは、XmlReaderを使用してファイルを読み取り、内部xmlをオブジェクトに逆シリアル化し、さらに処理を行うことです。
XML構造は次のようなものです。
XMLTextReaderをラップするXMLReaderを使用してファイルを読み取ると、すべてがうまくいきます。ただし、個々のリンゴをオブジェクトに逆シリアル化しようとすると、InvaildOperationExceptionがスローされます。
誰もが問題を知っていますか?それを行うためのより良い方法はありますか?
これがコードフラグメントです
c# - System.Type T を指定して、リストを逆シリアル化します
シリアライズおよびデシリアライズしたいクラスがいくつかあります。タイプ(「ユーザー」、「管理者」、「記事」など)を指定して、それらのアイテムのリストでファイルを逆シリアル化する関数を作成しようとしています。例えば:
上記を達成する方法がわかりませんが、なんとかこれを機能させることができました:
typeof(List<Article>)
問題は、 "pretty" の代わりに"ugly" を渡さなければならないことtypeof(Article)
です。
これを試すと:
... エラーが発生する
質問:GetAllItems()
このように関数を呼び出してリストを返せるように修正するにはどうすればよいですか:
ありがとう!
c# - リストから要素を取得するIDに基づく
この質問は、次の質問に関連しています: 与えられた System.Type T, Deserialize List<T>
すべての要素のリストを取得するこの関数を考えると...
...必要な UID (一意の ID) を持つアイテムを 1 つだけ取得する関数を作成したい:
ただし、GetAllItems<typeof(T)>();
呼び出しが適切に形成されていないため、これは機能しません。
質問 1a : GetItemByID() を呼び出すすべてのクラスが要素として UID を持っている場合、一意の要素を適切に返すように 2 番目の関数を修正するにはどうすればよいですか? public static <T> GetItemByID<T>(int UID)
できればやってみたい です。
質問 1b : 同じ質問ですが、GetItemByID の関数プロトタイプを変更できないとしますか?