質問
私は現在JDOMと仕事をしています。本質的に簡単な問題であるべき解決策は考えられません。
有効なXHTML文字列があります:
<b>M&A</b> €
次のようにこれをXML DOMに挿入するにはどうすればよいですか?
<parentNode>
<b>M&A</b>
€
</parentNode>
(このXMLはXSLトランスにオフになり、ブラウザ用にXHTMLをレンダリングします)
私は次の「擬似」ソリューションを思いつきましたが、それらが可能かどうかはわかりません:
XMLエンティティではないUNESCAPEエンティティを挿入します。
Reinscape XMLのみが挿入され、HTMLが文字列全体を無効にしてから挿入します。
タラス
解決
使用できると思います jtidy 名前付きのエンティティを番号付きのエンティティに変換する。その後、XHTMLも有効なXMLです。
他のヒント
€は有効なXHTMLエンティティですが、有効なXMLのエンティティではありません。
残念ながら、私はJDOMについて何も知りませんが、可能であればDTDを追加してみてください エンティティ宣言 お気に入り <!ENTITY euro "€">
. 。そして、多分、すべてのXHTMLタグを適切な名前空間に入れます(<parentNode xmlns:x="http://www.w3.org/1999/xhtml"><x:b>...</x:b></parentNode>
)
含む文字列を作成します
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
+
この場合、XHTMLコンテンツ <b>M&A</b> €
+
</html>
次に、この文字列を解析してドキュメントを取得します。次に、すべてのコンテンツをルート要素内に取得します。これはXHTMLコンテンツになり、ParentNode要素内に配置します。コンテンツは別のドキュメントから来ていることを考慮する必要があるかもしれません。