Je travaille sur un cas où je dois nettoyer les caractères XML non valides que je reçois d'un service Web SharePoint. Je sais que réparer la source est la bonne chose à faire - cependant, ce problème a été rapporté en 2008, et je n'ai pas encore trouvé que Microsoft a publié un correctif pour cela.Comment faire pour transformer la source avec des caractères XML non valides
Pour l'instant, j'appelle le service Web en utilisant l'interface Provider de JAX-WS. Je reçois la Source avec le XML retourné très bien, mais je suis coincé en essayant de trouver un moyen de transformer la source en DOM XML valide.
je reçois une exception se plaindre du caractère XML illégal chaque fois que j'essayer quelque chose comme le pseudo-code suivant:
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);
...
Serait-il possible de créer une coutume FilterReader et l'insérer dans la transformation?
Ou pourrais-je personnaliser le Marshaller peut-être?
Quel serait le meilleur moyen d'injecter du code dans la transformation pour filtrer ces caractères invalides?