JAVA SAX DefaultHandler startCDATA()未触发

我试图在标签内解析并检测CDATA的开始,如:

我有一个扩展Default处理程序的类

class MyXmlDoc extends DefaultHandler{

使用正确endElement() startElement()endElement() ,但startCDATA()永远不会触发。 我的characters()方法选择’数据在这里’所以看起来CDATA’包装’被检测到但是???

感谢您的任何见解!

CDATA是一个词汇事件。 常规处理程序(内容处理程序,error handling程序)不处理这些事件。 你需要为你的读者设置一个词法处理程序,如果它支持一个。 词法处理程序是SAX2扩展,因此Java XMLReader使用setProperty方法进行设置。

请参阅: http: //download.oracle.com/javase/6/docs/api/org/xml/sax/XMLReader.html#setProperty%28java.lang.String,%20java.lang.Object%29和http:/ /download.oracle.com/javase/6/docs/api/org/xml/sax/ext/LexicalHandler.html

您的数据是否在那里被转移? 你是如何编写xml文档的?

这可能对您有所帮助: 如何从Sax XmlHandler输出CDATA部分

这也很冗长: http : //www.coderanch.com/t/127987/XML/read-cdata-sax-parser