3

SQLクエリ(<記号を含む)をxmlファイル内に配置し、Javaプログラムでそのクエリを読み取ろうとしています。しかし、それは例外を表示しています

"org.xml.sax.SAXParseException:要素のコンテンツは、整形式の文字データまたはマークアップで構成されている必要があります。"

上記の問題を解決する方法を教えてもらえますか?

4

3 に答える 3

6

XMLエンティティを使用してエスケープする必要があります。

  • &としてエンコード&amp;
  • <としてエンコード&lt;

技術的には、以下をエスケープする必要はありませんが、一般的にはエスケープします。

  • >としてエンコード&gt;
  • "としてエンコード&quot;
  • 'としてエンコード&apos;

詳細については、このウィキペディアの記事を参照してください。

于 2012-06-08T07:02:52.243 に答える
4

CDATAを利用する

CDATA-(未解析)文字データ

CDATAは文字データの略で、これらのタグの間にあるデータには、XMLマークアップとして解釈できるデータが含まれていることを意味しますが、

CDATAという用語は、XMLパーサーによって解析されるべきではないテキストデータについて使用されます。

「<」や「&」などの文字は、XML要素では無効です。

「<」は、パーサーが新しい要素の開始として解釈するため、エラーを生成します。

「&」は、パーサーが文字エンティティの開始として解釈するため、エラーを生成します。

JavaScriptコードなどの一部のテキストには、多くの「<」または「&」文字が含まれています。エラーを回避するために、スクリプトコードをCDATAとして定義できます。

CDATAセクション内のすべては、パーサーによって無視されます。

例:

<![CDATA[ select <abcddata> ]]>
于 2012-06-08T07:04:18.913 に答える
3
< = &gt;
> = &lt;

これらはHTMLエンティティであり、受け入れる必要があります

于 2012-06-08T07:03:07.867 に答える