您的位置:首页 > 其它

sax解析内容中含有xml特殊字符转义实体的解决方案

2010-11-09 11:39 567 查看
一般来说,类似于& < > ' ";这些xml的特殊字符都是放在cddata中的

有些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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: