解析过XML的请进

我遇到一个问题 碰到一个第三方写好的xml要解析 这个xml能容不能改 其中包含一些未知的特殊字符 请问谁有过滤特殊字符的代码或者 方法 分享一下 不胜感激

[code="java"]
package www.oneddu.cn;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ParseForJdomDemo {
public void parseXML() {
SAXBuilder builder = new SAXBuilder();// 创建构建对象
try {
// 通过传入文件名通过 builder构建一个document文档对象
Document document = builder.build("data-sources.xml");
// Document对象提供了获取XML文件根节点以及文档中各节点及属性的方法
// 获取 该XML文件中的根节点,返回Element对象
/*
* Element是 XML元素对象,该类提供了拿取和操作当前节点的子节点元素和内容, 可直接通过元素拿取文本内容
*/
Element root = document.getRootElement();
System.out.println("获取到的根节点名字---->" + root.getName());
// root.getChildren()该方法返回所有的子元素(子节点)
java.util.List childList = root.getChildren();
for (Element child : childList) { // 遍历这个集合,想要拿取所有的子元素的信息
System.out.println("获取到的子节点的元素名---->" + child.getName());
// 获取该节点下所有的属性及属性值
List attributes = child.getAttributes();
// Attribute 中存放的是该节点的属性及值,
for (Attribute attribute : attributes) {
System.out.println("获取 " + child.getName() + "--节点的属性名-->"
+ attribute.getName() + "\t 值="
+ attribute.getValue());
}

// 接下来,做的是获取该节点下的所有的子节点信息
List<Element> sunziList = child.getChildren();// 获取 param
            // 节点下的子节点
            // ,相对根节点而言是孙节点
for (Element sunzi : sunziList) { // 遍历孙节点的集合
 System.out.println("孙节点名---" + sunzi.getName() + "\t 值="
   + sunzi.getValue());
}

/*
 * Element保存的是节点及节点的值 Attribute 保存的是属性及属性的值 <param
 * database="mysql" version="5.0"> 这条语句中 param 是节点名,database
 * 是属性名,version 是属性名 
 */

}
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
ParseForJdomDemo p = new ParseForJdomDemo();
p.parseXML();
}
}
我已经尽力了……
[/code]

未知的特殊字符 什么意思,解析xml的,只要他的xml是正确的,特殊字符他会cdata处理的,解析的时候不用特殊处理
[quote]http://topic.csdn.net/u/20090213/14/fb8d1077-63db-4cf3-93d0-c97089b4606a.html[/quote]可能对你有帮助

[quote]如果特殊的字符用<![CDATA[特殊字符]]> 包含了,就不会用问题,解析的时候不会去解析这个,如果没有,原始的xml可能要修改了,
你现在解析这xml报错么?
[/quote]