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