1

多分これはn00b-質問です。

私はそのようなxmlファイルを解析しようとします:

<?xml version="1.0" encoding="UTF-8" ?>
<test>
  <a></a>
</test>

次のコードを使用します。

public static void parse(File f) {
    final DefaultHandler handler = new DefaultHandler() {
        @Override
        public void processingInstruction(String target, String data) throws SAXException {
            System.out.println("Processing Instruction");
        }
    };
    SAXParserFactory.newInstance().newSAXParser().parse(f, handler);
}

出力が標準出力に出力されることを期待しています"Processing Instruction"。しかし、これは起こりません。誰かが理由を教えてもらえますか?

4

1 に答える 1

1

JavaDocから:

SAXパーサーは、このメソッドを使用してXML宣言(XML 1.0、セクション2.8)またはテキスト宣言(XML 1.0、セクション4.3.1)を報告してはなりません。

私が理解しているように、<?xml version="1.0" encoding="UTF-8" ?>この方法では回線は報告/キャッチされません。xmlコードに別の処理命令を追加して、パーサーに再度フィードしてみてください。

于 2010-07-20T09:34:48.053 に答える