テキストに '& 文字が含まれている場合 (たとえば、URL や " " などの HTML エンティティを使用している場合)、マーシャリング中にエラーが発生したため、 bdoughanの回答に従うことはできませんでした。
カスタムDomHandler
のmarshal
メソッドを次のように変更することで、これを解決できました
public Source marshal(String et, ValidationEventHandler veh) {
Node node = new SimpleTextNode(et);
return new DOMSource(node);
}
whereSimpleTextNode
は Node インターフェースを次のように実装します。
class SimpleTextNode implements Node {
String nodeValue = "";
@Override
public SimpleTextNode(String nodeValue) {
this.nodeValue = nodeValue;
}
@Override
public short getNodeType() {
return TEXT_NODE;
}
// the remaining methods of the Node interface are not needed during marshalling
// you can just use the code template of your IDE...
...
}
PS:これをbdoughanの回答へのコメントとして残したいと思っていましたが、残念ながら評判が低すぎます:-(