【问题标题】:How to transform Source with invalid XML characters如何使用无效的 XML 字符转换 Source
【发布时间】:2010-10-05 16:26:43
【问题描述】:

我正在处理一个需要清理从 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 并将其插入到 Transformation 中?

或者我可以自定义 Marshaller 吗?

将代码注入转换以过滤掉那些无效字符的最佳方法是什么?

【问题讨论】:

    标签: xml exception transformation sanitization illegal-characters


    【解决方案1】:

    回答我自己的问题 - 我完全放弃了 JAX。

    当接收 SOAP 消息严格遵循标准时,JAX-WS 工作得很好。但是我还没有找到一种方法让它处理不符合标准的 SOAP 消息(阅读“Microsoft SOAP 消息”)。 我直接使用 POJO 代码,解决这个问题非常简单。

    溴 一月

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多