我正在处理一个需要清理从 SharePoint Web 服务接收到的无效 XML 字符的案例。我知道修复源代码是正确的做法——但是这个问题早在 2008 年就已经报告过了,我还没有发现微软已经为它发布了补丁。
现在,我使用来自 JAX-WS 的 Provider 接口调用 Web 服务。我很好地收到了带有返回 XML 的源,但我一直在努力寻找一种将源转换为有效 XML DOM 的方法。
每次尝试以下伪代码时,都会收到一个异常,抱怨非法 XML 字符:
public void xmlTranform(javax.xml.transform.Source source) {
StreamResult sr = new StreamResult(new java.io.StringWriter());
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.transform(source, sr);
...
是否可以创建自定义 FilterReader 并将其插入到转换中?
或者我可以定制 Marshaller 吗?
将代码注入转换以过滤掉那些无效字符的最佳方法是什么?