2

現在、JDOMを使用しています。本質的に簡単な問題であるはずの解決策を考えることはできません。

有効なXHTML文字列があります:

<b>M&amp;A</b> &euro;

これを次のようにXMLDOMに挿入するにはどうすればよいですか?

<parentNode>
  <b>M&amp;A</b>
  €€
</parentNode>

(このXMLはXSLトランスフォーマーに送られ、ブラウザー用にXHTMLがレンダリングされます)

私は次の「疑似」ソリューションを考え出しましたが、それらが可能かどうかはわかりません。

XMLエンティティではないエンティティをエスケープ解除してから挿入します。
XMLエンティティのみを再エスケープし、次にHTMLで文字列全体のエスケープを解除してから、挿入します。

タラス

4

3 に答える 3

2

JTidyを使用して、名前付きエンティティを番号付きエンティティに変換できると思います。その後、XHTMLも有効なXMLになります。

于 2009-06-11T18:37:41.273 に答える
0

&euro; 有効なXHTMLエンティティです。有効なXMLエンティティではありません。

残念ながら、私はJDOMについて何も知りませんが、可能であれば、のようなDTDエンティティ宣言<!ENTITY euro "€">を追加してみてください。そして、おそらく、すべてのXHTMLタグを適切な名前空間に配置します(<parentNode xmlns:x="http://www.w3.org/1999/xhtml"><x:b>...</x:b></parentNode>

于 2009-06-11T18:29:28.640 に答える
0

を含む文字列を作成します

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

+

この場合はXHTMLコンテンツ<b>M&amp;A</b> &euro;

+

</html>

次に、この文字列を解析してドキュメントを取得します。次に、ルート要素内のすべてのコンテンツを取得します。これがXHTMLコンテンツになり、parentNode要素内に配置します。コンテンツが別のドキュメントからのものであることを考慮する必要がある場合があります。

于 2009-06-11T19:00:28.427 に答える