sax解析内容中含有xml特殊字符转义实体的解决方案
2010-11-09 11:39
567 查看
一般来说,类似于& < > ' ";这些xml的特殊字符都是放在cddata中的
有些xml的内容直接把这些字符转义了,直接放在内容中,
也就是说不放在cddata中,
类似于这样
<data>
<person>
<name>yaowei</name>
<nick>'名字好难起啊'</nick>
</person>
</data>
这种情况就需要特殊处理下,
extends defaulthandler
重写其中的几个方法,
闲话少说,上测试代码:
main方法中的测试:
有些xml的内容直接把这些字符转义了,直接放在内容中,
也就是说不放在cddata中,
类似于这样
<data>
<person>
<name>yaowei</name>
<nick>'名字好难起啊'</nick>
</person>
</data>
这种情况就需要特殊处理下,
extends defaulthandler
重写其中的几个方法,
闲话少说,上测试代码:
class SAXHandler extends DefaultHandler { private StringBuffer str = null; public void characters (char ch[], int start, int length) { str.append(ch, start, length); } public void startElement(String uri, String localName, String qName, Attributes attr) throws SAXException { str = new StringBuffer(); } public void endElement(String uri, String localName, String qName) throws SAXException { System.out.println(str.toString()); } }
main方法中的测试:
final String ss = "<?xml version=/"1.0/" encoding=/"gbk/"?><data><person><name>yaowei</name><nick>'名字好难起啊'</nick></person></data>"; SAXParserFactory saxparserfactory = SAXParserFactory.newInstance(); SAXParser saxparser = saxparserfactory.newSAXParser(); saxparser.parse(new java.io.ByteArrayInputStream(ss.getBytes()), new SAXHandler());
相关文章推荐
- sax解析内容中含有xml特殊字符转义
- sax解析xml的特殊字符解决方法
- 处理内容有&特殊字符thinkphp返回xml无法解析的问题<![CDATA[xxx]]>
- digester解析xml_org.xml.sax.SAXParseException; lineNumber: 2193; columnNumber: 41; 引用了实体 "nbsp", 但未声明它
- jquery对id中含有特殊字符的转义处理
- 使用URLDecoder.decode解析字符串含有"+","+"号这个特殊字符会被吃掉,转换成空格
- XML解析时候因为特殊字符&,<,>,",'出错
- html和xml传特殊字符的时候需要转义
- xml 转义特殊字符 如&'"
- xml特殊字符转义技术
- asp.net webapi 序列化为xml 时实体属性增加<![CDATA[]]>防止特殊字符
- xml特殊字符处理的两种方式:实体引用和CDATA
- SAXBuilder解析xml文件内容用于公共参数的校验
- as3实现XML中特殊字符的转义还原
- SAX解析xml时,数据内容超过2k时,数据被分段,信息不完整
- XML中特殊符号转义实体
- 将HTML特殊转义为实体字符的两种实现方式
- ajax传递参数含有特殊字符解决方案
- Oracle更新表字段时内容中含有特殊字符&的解决方法
- xml 转义特殊字符 如&'"