問題タブ [saxparseexception]
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 - 1つの単語を有効なxmlに変換するにはどうすればよいですか?
関数に渡す文字列をドキュメントに変換する次のコードがあります。
問題は、私が使用しているレガシーコードの一部が、RANDOM
またはのような1つの単語をこのtoXml関数に渡すことですFICTION
。解析を試みる前に、これらの呼び出しを有効なxmlに変換したいと思います。今、s = FICTIONで関数を呼び出すと、SAXParseExeption
エラーが返されます。誰かがこれを行う正しい方法について私にアドバイスできますか?ご不明な点がございましたら、お気軽にお問い合わせください。
お時間をいただきありがとうございます
-ジョシュ
java - SAXParserは一部の文字の解析に失敗します
私はandroid/javaでSAXParserなどを使って簡単なSAXParsingを行っています
ファイルを適切に解析できますが、特殊文字が検出されると、たとえば次のxmlを解析する場合に問題が発生します。
最後の行のPohjois-Leppävaaraでäに遭遇すると、しゃっくりします。
それが与えるエラーは次のとおりです。
SAXParserはこれらの文字を処理できると確信していますが、どこかにエンコーディングなどを設定する必要があると思いますか?
Javaコードはそうです:
xml - 要素「ルート」の名前空間は、スキーマ名前空間「http://www.w3.org/2001/XMLSchema」からのものである必要がありますか?
私はxmlドキュメントを持っています:
そして、次のxsdを使用してこのxmlを検証したいと思います。
検証しようとすると、次のエラーが発生します。
私の質問は、なぜルートがスキーマの名前空間になければならないのかということです。それは私がxmlドキュメントを正しく検証していないということでしょうか?
public synchronized boolean isValid(String xmlFragment、File xmlSchema)throws SAXException、IOException {
// 1.W3CXMLスキーマ言語のファクトリを検索します
android - このコードがSaxParseExceptionをトリガーし続けるのはなぜですか: ""PIはxmlで開始してはいけません"?
このコードは、文字列表現からXMLドキュメントを生成するために使用されます。小さな単体テストでは正常に機能しますが、実際のxmlデータでは失敗します。それがトリガーするラインはDocument doc = db.parse(is);
何か案は?
xsd - dom4j DOMDocument を使用して validator.validate(DOMSource) をフィードすると、Java 1.6 で失敗し (xsi:noNamespaceSchemaLocation は許可されません)、1.5 で機能します。
dom4j DOMDocument を使用して validator.validate(DOMSource) をフィードすると Java 1.6 で失敗し (xsi:noNamespaceSchemaLocation をルート要素に表示することは許可されていません)、1.5 で機能します。
次の問題は非常に扱いにくいと思います(OK、それは控えめな表現です)-洞察をいただければ幸いです。現在、XOM (http://stackoverflow.com/questions/831865/what-java-xml-library-do-you-recommend-to-replace-dom4j) などを優先して dom4j を削除するのが最善の方法のようです。
dom4j 'new DOMDocument()' から作成された XML をメモリ内で検証してきましたが、これは Java 6 では機能しません。
次の dom4j (1.6.1) DOMDocument 派生 DOMSource の validate(source) の呼び出しは、Java 1.5.x では機能しますが、Java 1.6.x では失敗します。
getSchemaURLString() は、xsi:noNamespaceSchemaLocation 属性をルート ノードに追加するためにも使用されます。
例外は次のとおりです。
これが XML の始まりです - validator.validate(source) への呼び出しを無効にした後に生成されます。
そしてXSDの:
xsi:noNamespaceSchemaLocation 属性が含まれているため、私のルート要素は拒否されています。そして、スキーマ自体はそれをルート要素の有効な属性として指定していませんか?
この時点で、このタスクのために dom4j をあきらめて、他のソリューションの 1 つに切り替える必要があるように思えます。
しかし、とにかく私が間違ったことを知りたいです!
前もって感謝します。
xml - いくつかの巨大な基本的なものが間違っています-「要素Xが見つかりません」
私のxml
私のスキーマ
そして、「SaxParseException:要素'credits'の宣言が見つかりません」と表示されます。
何?!:Pどうしてそれが可能ですか?ここでは絶対に混乱しています。まだ何時間もグーグルしています。
ありがとうSO!
編集:解決策を見つけました。グーグルはついに何かを生み出した。:P追加する必要がありました
DocumentBuilderFactoryオブジェクトに。:D
xml - 検証時の DTD 情報と関連エラー (XSD スキーマ) -- それらは無視できますか?
だから私は大量のXMLファイルを持っています。何年もの間、それらを書いている人が手作業で行っていたため、エラーが自然に発生していたため、問題が発生していました。それらを検証し、これらの XML ファイルを使用しようとしたときに何が問題なのかについてフィードバックを提供する時期が来ました。
SAX パーサーを使用して、エラーのリストを取得しています。
以下は私のコードです
最初の 2 つのエラーは常に次のとおりです。
行番号: 2: ドキュメントが無効です: 文法が見つかりません。行番号: 2: ドキュメント ルート要素「credits」は、DOCTYPE ルート「null」と一致する必要があります。
チェックが必要なこれらの何千もの XML ファイルを編集することはできません。
これを防ぐためにソースの前に簡単に追加できるものはありますか? これらの DTD 関連のエラーを無視するようにパーサーに指示する方法はありますか? 文法が何を意味するのかさえわかりません。2つ目の意味はなんとなくわかります。
java - SAXParseException は getSystemId() に対して null を返します
SAXParseException が getSystemId() に対して null を返すのはなぜですか? システム識別子とは
android - SaxParser のストリームを適切に終了し、「予期しないファイルの終わり」例外を回避する
Androidでここに引用されているものと同じ問題を抱えています。
与えられた解決策は、入力ストリームではなく URI を使用することでした。
APIが示すようにinputStreamを使用できると思いますが、parseメソッドで例外を発生させているストリームに明らかに問題があります。すべてのデータがストリームに送られていることを確認できます。SAXParseException は、-1 を返す getColumnNumber メソッドを使用できるため、すべてのデータが parse メソッドに送られていることを示しています (ストリーム全体が読み取られたことを示します)。しかし、解析メソッドがこれをストリームの終わりとして認識していないように見えるため、「予期しないファイルの終わり」(?) が発生します。
parse メソッドへの入力として URI ではなく入力ストリームを使用する方法を教えてください。
java-me - JAXP Sax パーサー Java-ME Midlet 漢字の解析からの例外
HTML Unicode としてエンコードされ、XML ファイルに埋め込まれた一部の漢字を解析するのに大きな問題があります。
Java MEとjavax.xml.parsers.SAXParserを使用しています
そのような文字ファイルの 1 つに词があります。
それに関する情報: http://www.isthisthingon.org/unicode/index.php?page=08&subpage=B&glyph=08BCD
でも妙に后
正常に動作しています。
直接埋め込むこと<test>词</test>
もできます。
私のテスト midlet には、次のソース コードがあります。
それは死んでいます:
アイデアをいただければ幸いです。