定義済み実体
XMLの処理をJavaでやっているわけですが、定義済み実体参照はデフォルトで解決してくれるみたいです。調べた限りどこにもドキュメントがなかったので、自分でテストクラスをつくって試してみました。解決されるのがあたりまえすぎて、書いていないのかな??
試したのは、デフォルト状態のSAXParserで、定義済み実体が文字に変換されるか。結果、XMLで定義済みの実体参照5種類はすべて文字に変換されました。
ちなみに定義済み実体の5種類とは>(>)、<(&lt;)、&(&)、'(')、"(")です。
テストコードは続きをどうぞ。
XmlReaderExperiment.java
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class XmlReaderExperiment{
public XmlReaderExperiment(){}
public static void main(String args[]){
try{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
TestHandler handler = new TestHandler();
parser.parse(new File("hoge.xml"), handler);
}catch(Exception e){e.printStackTrace();}
}
}
class TestHandler extends DefaultHandler{
public TestHandler(){super();}
/**
* テキストデータ読み込み時
*/
public void characters(char[] c, int offset, int length) throws SAXException{
System.out.println("CDATA start!!");
System.out.println(" string:\t" + new String(c, offset, length));
}
}
hoge.xml
<root>
<head></head>
<body>
>(大なり)
<(小なり)
&(アンド)
'(アポストロフィー)
"(引用符)
</body>
</root>
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。