3

以下を含む XML ファイル sample.xml があります。

<Tokens>
   <Token>Hello&nbsp;World</Token>
</Tokens>

解析したいのですが、NBSP に到達するとエラーが発生します

使用している XML のスキーマ (トークンまたはトークンを定義するもの) にアクセスできません。

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
doc = docBuilder.parse("sample.xml");

XML ドキュメントのスキーマを持っていないので、解析中に HTML 特殊文字を完全に無視する方法があるかどうか疑問に思っていましたか?

4

4 に答える 4

3

XML では、&nbsp;はエンティティ参照ですが、定義を提供しない限り、未定義のものです。XML パーサーにそれらを無視させることはできませんが、定義することはできます。

<!DOCTYPE Tokens [<!ENTITY nbsp "&#xa0;">]>

ただし、XML ファイルを生成している場合、これはおそらく役に立ちません。&#xa0;実際の文字「 」 U+00A0 NO-BREAK SPACE、または文字参照またはそれに相当する 10 進数を含むドキュメントを生成することもできます&#160;

参照。to question有効な XML ドキュメント内で HTML エンティティ参照を定義するにはどうすればよいですか?

于 2013-10-04T18:36:21.907 に答える
0

ask XML を解析するには、エンティティがどこかに定義を持っている必要があるため、あなたが求めることは不可能です。XML 以外として解析するには、独自のパーサーを作成するか、寛容なパーサーを使用する必要があります。XML はタグ スープではありません。

于 2013-10-04T17:56:57.537 に答える