問題タブ [xmlexception]
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.
java - 「予期しない要素: CDATA」というメッセージが表示される org.apache.xmlbeans.XmlException は何を意味しますか?
XML ドキュメントを解析してロードしようとしていますが、XmlObject を拡張するクラスで parse メソッドを呼び出すと、この例外が発生します。残念ながら、それは私の問題である、予期しない要素のアイデアを私に与えません.
このコードを共有することはできませんが、必要に応じてより多くの情報を提供することができます。
c# - 「/」文字の 16 進値 0x2F の XmlException を名前に含めることはできません
生成された例外を解決するにはどうすればよいですか?
これにより、次の例外が生成されます。
System.Xml.XmlException was unhandled Message='/' 文字 (16 進値 0x2F) は名前に含めることができません。ソース=System.Xml
exception - C# の RSS フィードでの DateTime 解析の例外
SyndicationFeedFormatter および SyndicationFeed オブジェクトを使用して、Rss2、Atom フィードを解析しようとしています。しかし、pubDate や lastBuildDate などの DateTime フィールドを解析しているときに XmlExceptions が発生します。
2010 年 2 月 24 日水曜日 18:56:04 GMT+00:00 が機能しない
水曜日、2010 年 2 月 24 日 18:56:04 GMT の動作
したがって、タイムゾーンフィールドが原因でスローされます。
回避策として、使い慣れたフィードの場合、これらの DateTime ノードを手動で修正します。XmlException をキャッチし、Rss を XmlDocument にロードし、それらのノードの値を修正し、新しい XmlReader を作成してから、この新しい XmlReader オブジェクトからフォーマッタを返します (コードは示す)。しかし、このアプローチが機能するには、どのノードが例外を引き起こすかを事前に知る必要があります。
RSS フィード: http://news.google.com/news?pz=1&cf=all&ned=us&hl=en&q=test&cf=all&output=rss
例外の詳細:
XmlException 行 1 の位置 376 でエラーが発生しました。XML で DateTime 値を解析中にエラーが発生しました。
System.ServiceModel.Syndication.Rss20FeedFormatter.DateFromString (文字列 dateTimeString、XmlReader リーダー)
で System.ServiceModel.Syndication.Rss20FeedFormatter.ReadXml (XmlReader リーダー、SyndicationFeed 結果) で System.ServiceModel.Syndication.Rss20FeedFormatter.ReadFrom (XmlReader リーダー) で。 .. cs:171行目
これを達成するためのより良い方法はありますか?助けてください。ありがとう。
c# - XmlException に含めることができるすべてのメッセージのリストはどこにありますか?
XML コード エディターを作成していて、ユーザー インターフェイスに構文エラーを表示したいと考えています。私のコード エディターは特定の問題領域と対象ユーザーに強く制限されているため、特定の XMLException メッセージをユーザーにとってより意味のあるものに書き換えたいと考えています。たとえば、次のような例外メッセージ:
'"' は予期しないトークンです。予期されるトークンは '=' です。行 30、位置 35
.. 非常に技術的で、聴衆にとってあまり有益ではありません。代わりに、それと他のメッセージを別のものに書き直したいと思います。完全を期すために、代わりに表示したい新しいメッセージにマップされた既存のメッセージの辞書を作成する必要があります。これを実現するには、XMLException に含めることができるすべてのメッセージのリストが必要になります。
そのようなリストはどこかにありますか?または、C# でオブジェクトを検査して、考えられるメッセージを見つけることはできますか?
編集: 具体的には、XmlDocument.LoadXml を使用して文字列を XmlDocument に解析しています。構文エラーがあると、そのメソッドは XmlException をスローします。具体的には、私の質問は、XmlDocument.LoadXml によって XmlException に適用されるメッセージのリストを見つけることができる場所です。XmlException の Message プロパティに実際の文字列の無限のバリエーションがある可能性についての議論は意味がありません。
編集 2: より具体的には、これを試みるべきかどうかについてアドバイスを求めているわけではありません。さまざまなメッセージを取得する方法の手がかりを探しているだけです。ベンの答えは、正しい方向への一歩です。誰か別の方法を知っていますか?
c# - XmlException.SourceUri が読み取り専用の場合、それは何の役に立つでしょうか?
私のコードには、新しい System.Xml.XmlException をスローするのが適切と思われる場所がいくつかあります。私はちょうどすることができました
ただし、例外クラスに固有のメンバーを可能な限り利用する方がよいと思います (そうしないと、Exception
毎回プレーン オールをスローすることもできます)。SourceUri と LineNumber は役に立ちますが、メソッドしかないのでget
、値を割り当てる方法はありません! コンストラクターのオーバーロードは 3 つしかなく、それらのメンバーのパラメーターもありません。初期化することしかできずMessage
、他には何もできません。
これらのデータ メンバーに値を設定する何らかの方法が必要です。
XmlException を継承する新しいクラスを作成し、SourceUri などを初期化する新しいコンストラクターを作成できると思いますが、それでも、XmlException を使用するだけの方法が必要です。右?
c# - XMLタグに特殊文字を含むXElementを取得する方法
トラバースしようとしているXMLドキュメントがあります。これはSDMXに準拠しています。ここに短いサンプルがあります:
ただし、C#でLinq to Xmlを使用して次のことを実行しようとすると、XmlExceptionが発生します。
例外テキストは次のとおりです。「:」文字、16進値0x3Aは、名前に含めることはできません。
XMLを制御することはできません。これをどのように克服できるかについてのアイデアはありますか?
c# - XmlReader ReadStartElement が XmlException を引き起こす
Silverlight プロジェクトで XmlReader を使用してファイル リーダーを作成しています。ただし、いくつかのエラー (特に XmlReader.ReadStartElement メソッドの周り) が発生しており、途中で使用方法を誤解していると思われます。
基本的に、私が使用している Xml の形式のサンプルを次に示します。
そして、これは私がそれを使用しているのと同じ方法で使用されるいくつかのコードのサンプルです:
したがって、基本的には、各要素とそれに含まれる子を読み取ろうとしているだけです。強調表示されたポイントで発生するエラーは次のとおりです。
エラーの説明
[Xml_InvalidNodeType] 引数: なし、10,8 デバッグ リソース文字列は使用できません。多くの場合、キーと引数は、問題を診断するのに十分な情報を提供します。http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.51204.0&File=System.Xml.dll&Key=Xml_InvalidNodeTypeを参照してください。
エラー スタック トレース
System.Xml.XmlReader.ReadStartElement(文字列名) で ----------------
これに関するアドバイスや指示は大歓迎です。
編集 このリーダーはかなり一般的である必要があるため、Xml には EmptyElement の子である要素が含まれている可能性があると想定できます。そのため、SubEmptyElements の読み取りの試行は有効である必要があります。
c# - タイプ'System.Xml.XmlException'の最初のチャンスの例外がSystem.Xml.dllで発生しました
アプリケーション(WCFを使用してサービスに接続するクライアント)を起動すると、VisualStudioの出力ウィンドウに次のような多くの行が表示されます。
タイプ'System.Xml.XmlException'の最初のチャンスの例外がSystem.Xml.dllで発生しました
この例外のスローをオンにして、クライアントがWCFサービスを呼び出したときに発生することを確認しました。例外のメッセージは次のとおりです。
名前は「<」で始めてはなりません(ドイツ語:Ein Name darf nicht mit dem Zeichen'<'、hexadezimaler Wert 0x3C、beginnen)。
私はこれについて何かをすべきですか?それともこれは正常ですか?これはパフォーマンスの問題になる可能性がありますか?
ご協力いただきありがとうございます。
よろしく、トーマス
c# - わずかに不正な形式のXMLでC#のXmlReaderを使用する
大量の一連のXMLファイルでC#のXmlReaderを使用しようとしていますが、いくつかの選択されたファイルを除いて、すべて適切にフォーマットされています(残念ながら、他の多くのコードが破損するため、変更することはできません。 )。
エラーは、これらの厄介なXMLファイルの特定の部分からのみ発生します。それらをスキップしてもかまいませんが、残りのXMLファイルの読み取りを停止したくありません。
悪い部分は次のようになります。
したがって、無効なタグを無視したり、パイプシンボルを無視したりできれば、大丈夫です。
「ErrorsHere」という名前が機能しない場合にXmlReader.Skip()を使用しようとすると、明らかに少し先を読み取って例外がスローされます。
TLDR:XmlReaderを使用して上記のXMLファイルを読み取ることができるようにスキップするにはどうすればよいですか?
編集:
'|'記号を置き換えることを提案する人もいますが、XmlReaderのアイデアは、ファイル全体をロードするのではなく、必要な部分のみをトラバースすることです。ファイルから直接読み取るため、ファイル全体を読み取る余裕がないため、置き換えます。 '|'のすべてのインスタンス そして、もう一度パーツを読んでください:)。
c# - XmlExceptionで文字エンコードの問題のみをキャッチ
System.Xmlを使用してxmlドキュメントを解析しています。xmlドキュメントに暗号化できない文字が含まれていると、XmlException
がスローされることがあります。そのような場合は、次のように、強制エンコードを使用してドキュメントの解析を再試行します。
これは、文字エンコードの問題が原因ではない場合でも、すべてのタイプのxmlの問題に対してXmlExceptionがスローされることを除いて、かなりうまく機能します。そのような場合、解析を再試行したくありません。それで、XmlExceptionが文字エンコードの問題または他の何かによって引き起こされたかどうかを理解する方法はありますか?