問題タブ [xmlreader]
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# - XmlReader と MemoryStream、返された xml にタグがありません
誰かが私にこの振る舞いを説明できますか?
投稿の下部にあるスニペットを最初の文字列で実行すると、入力に使用されたものとまったく同じ文字列が返されます。それが私が期待したことです。
入力 1:
出力 1:
2 行目 ( const string xml
) を使用すると、まったく同じ文字列ですが、2 行ではなく 1 行で次のように返されます。
入力 2
出力 2
2 つの唯一の違いは、最初の出力では xml 宣言の直後に改行があることですが、ご覧のとおり、2 番目の出力では Parent タグと 3 番目のタグが欠落しています。何か考えはありますか?
使用したコードは次のとおりです。
.net - ReadToDescendant および/または ReadElementContentAsObject を使用して XmlReader の問題を修正する
私は、通常は非常に優れたオープン ソース プロジェクトであるExcel Data Readerの謎のバグに取り組んでいます。特定の OpenXML .xlsx スプレッドシートからの値の読み取りをスキップしています。
問題はReadSheetRow メソッドで発生しています (以下のデモ コード)。ソース XML は Excel によって保存され、奇妙な動作が発生する空白が含まれていません。ただし、空白で再フォーマットされた XML (たとえば、Visual Studio で [編集]、[詳細設定]、[ドキュメントのフォーマット] に移動) は完全に正常に機能します。
空白を含むテスト データ:
空白のないテスト データ:
問題を示すコード例:
Aは の後に出力され_xmlReader.Read()
、Bは の後に出力されReadToDescendant
、Cは の後に出力されることに注意してくださいReadElementContentAsObject
。
空白を含む XML のテスト結果:
空白のない XML のテスト結果:
パターンの変更は、XmlReader の移動ReadElementContentAsObject
先または場所に問題があることを示しています。ReadToDescendant
ここで何が起こっているのか知っている人はいますか?
whitespace - XElement.ReadFrom(XmlReader) から作成された XElement オブジェクトから空白を削除する方法
大きなxmlファイルを解析しています。そのため、XElement.Load() の代わりに XElement と組み合わせて XmlReader を使用しています。
以下とここに示すように、XmlReader から XElement オブジェクトとして作成しました。
この XElement オブジェクトのコンテンツを空白なしの文字列としてデータベースに保存したいと考えています。以下の 3 つの方法のいずれも機能しません。XElement.Load() を使用して xml をメモリにロードすると、ToString(SaveOptions.DisableFormatting) が機能します。
XmlReader オブジェクトに使用している XmlReaderSettings は以下のとおりです。IgnoreWhitespace =true/false を試してみましたが運が悪かったのですが、一部の要素がスキップされるため true に設定できません (スキップの理由については、空白区切りがない場合に XmlReader が他のすべての要素をスキップする理由を参照してください)。
XElement オブジェクトを解析すると機能しますが、XElement.Parse() が xml をメモリにロードするため、XmlReader を使用する目的全体が無効になります。
空白を削除するにはどうすればよいですか?
編集:これは私がしなければならなかったことです:
- 要素のスキップは、2 つの読み取りが原因で
reader.Read()
ありXElement.ReadFrom(reader)
、同じ反復で 1 つおきの要素がスキップされます。上記のリンクに記載されているループを修正すると、それが解決されます。問題は とは何の関係もありませんXmlReaderSettings
。 xelement.ToString(SaveOptions.DisableFormatting)
きれいな書式設定を削除します。
c# - これらのC#Xmlユニットテストで2番目のテストに合格するにはどうすればよいですか?XmlReaderSettingsの初期化で何が欠けていますか?
問題の説明:
- 標準のHTMLエンティティの解決に関する問題を修正する必要があります。
- 私はHtmlEntityReaderを実装しました-エンティティを解決するためのコードを持つXmlReaderの実装
- システムのパブリックAPIは、XmlReaderを使用するメソッドを提供するため、ユーザーはXmlReader.Createメソッドの1つを使用して作成されたXmlReaderを渡すことができます。
私のxmlユニットテストの現在のコードは以下のとおりです。
HtmlEntityReaderの部分的なコードは以下のとおりです。
例外があります:
私が自分の努力でこの問題を修正/調査/検索している間、簡単なアドバイスや解決策へのリンクを提供できますか?
c# - XmlReader.GetAttribute() が値を返さないのはなぜですか?
XML を C# で解析しようとしています。
関連するファイルの一部を次に示します。
これを読み取るコードは次のとおりです。
よくある間違いは、要素が開始要素であるかどうかを確認するチェックを忘れることであると読んだことがあります。追加しましたが、GetAttribute はまだ null を返します。何か案が?
php - XMLReader、DOM、Xpathを使用して、特定のノードのタグ名と値を取得します
xmlドキュメントをクエリしてから、特定のタグ値(forename、surname、group(dept)、job_titleなど)を表示する必要があります。
大きなXMLファイルを処理する必要がある場合があるため、XMLReaderを使用しています。DomXPathを使用してデータをフィルタリングしていますが、各要素のnodeNameとvalueを取得する方法がわかりません。以下のコードは、ノード名として「member」のみを返しますか?
どんな助けでもいただければ幸いです。
c# - XmlReader が名前空間 uris を各要素に追加するのはなぜですか?
C# オブジェクトに逆シリアル化したい次の形式の xml を含むストリームがあります。
私はこれを文字列で何度も実行しましたが、ストリームでは、名前空間属性をすべての複雑な要素に親切に追加しています。xmlns 属性を削除しただけで、スキーマに対する検証を忘れると、空の xmlns 属性が追加されるだけです。私が抱えている問題は、XmlSerializer (?) の Deserialize メソッドが、属性を想定していないというエラーをスローすることです。クラスを XmlRoot 属性と XmlType 属性で装飾しようとしましたが、何も変わりませんでした。
これが私がデシリアライズしたいクラスです
作業を行うために使用されている方法は次のとおりです
私は DataContractSerializer を使用してこれを試しましたが、それは学習する独自の機会をもたらします。そのため、XmlSerializer を機能させるために属性に入れるべきものを誰かが助けることができれば、それは素晴らしいことです.
どんな助けでも感謝します、ありがとう。
c# - Twitter RSS onloadを検索するコントロールを出力キャッシュする必要がありますか?
大ヒットしたサイトのいくつかのページで紹介されているユーザーコントロールがあります。これらのページの一部には、ブログサイドバー、フォーラムサイドバー、およびホームページの真ん中にあるスマックが含まれます。つまり、このコントロールは多くレンダリングされます。特定のアカウントのTwitterRSSフィードを読み取り、最後の2つのツイートを書き出すためのコントロール。以下は、コントロールのPage_Loadの大部分です。try {} catch
本番環境ではサイトがXMLを頻繁にロードできないように思われるため、私はそれを持っています。そのため、わかりやすいエラーメッセージを表示する必要があります。
ご覧のとおり、最新の2つのアイテムを取得し、フロントエンドのリピーターでそれらを繰り返します。何かが失敗した場合は、「Twitterは利用できません」などのエラーPlaceHolderをオンにします。
このエラーメッセージはprodサイトでよく見られるので、RSSフィードへのリクエストが多すぎるのではないかと思います。コントロールを10分間キャッシュする出力を考えていましたが、「エラー状態でキャッシュされるとどうなるか」と思いました。その後、10分間エラーメッセージパネルが表示されることが保証されています。私の質問は、新しくキャッシュされたバージョンを作成するときにキャッチからのエラーが表示された場合、それは本当に10分間キャッシュされるのでしょうか(私が設定したと仮定してDuration="600"
)?エラーメッセージではなく、実際のTwitterデータのみがレンダリングされたときに、これをより適切に機能させたり、キャッシュしたりするためのヒントはありますか?
前もって感謝します
c# - Reading Xml with XmlReader in C#
I'm trying to read the following Xml document as fast as I can and let additional classes manage the reading of each sub block.
However, I'm trying to use the XmlReader object to read each Account and subsequently the "StatementsAvailable". Do you suggest using XmlReader.Read and check each element and handle it?
I've thought of seperating my classes to handle each node properly. So theres an AccountBase class that accepts a XmlReader instance that reads the NameOfKin and several other properties about the account. Then I was wanting to interate through the Statements and let another class fill itself out about the Statement (and subsequently add it to an IList).
Thus far I have the "per class" part done by doing XmlReader.ReadElementString() but I can't workout how to tell the pointer to move to the StatementsAvailable element and let me iterate through them and let another class read each of those proeprties.
Sounds easy!
c# - XML / C#:属性が正しい場合にのみコンテンツを読み取る
次のようなXMLファイルがあり、Recordタグの属性が必要な場合にのみ、Nameタグのコンテンツを読み取ろうとしています。(以下のコードに続く)
XMLファイルは次のとおりです。
これは私がこれまでに持っているC#コードです:
したがって、たとえば、2
が関数に渡された場合、文字列を返すようにします"Jane Doe"
。私はXML解析に慣れていないので、助けていただければ幸いです。
ありがとう。