私は現時点でJDOMに取り組んでいます。私は、本質的に簡単な問題であるべき解決策を考えることはできません。XHTMLをXMLに挿入するには
私は、有効なXHTML文字列があります。次のように私はXMLのDOMにこれを挿入するにはどうすればよい
<b>M&A</b> €
を?
<parentNode>
<b>M&A</b>
€
</parentNode>
(このXMLは、その後、ブラウザ用のXHTMLをレンダリングするXSLトランスに消灯)
私が作ってみました次のような「擬似的な」解決方法がありますが、可能かどうかはわかりません。
XMLエンティティではないアンエスケープエンティティが挿入されます。
ReinscapeのみXMLエンタイトし、次にHTML全体をエスケープしてから挿入します。
タラス
これは私がやったことです: *(/ HTML /体/ノード()) XPathを使用して、身体のすべての子ノードを抽出* JTidy を使用してDOMにHTMLとして入力XHTML断片を解析挿入は、ターゲットXML DOM 唯一の注意点にノードを抽出しました'は有効なXHTMLエンティティであり、有効なHTMLタグではありませんでした。これは、最初のステップでシーケンスを扱わないことを意味しました:'をアポストロフィとして、むしろ6つの個々の文字として扱います。私は'のすべてのインスタンスを数値参照(ハックのビットが動作しますが、動作します)に置き換えて修正しました – Taras
JTidyに番号付きのものへのすべての名前付き実体参照を置き換える方法があると確信しています。コマンドラインでは、これは "-n"です。また、有効なXMLを生成するためのスイッチもあります。私はJavaライブラリが同じことをすることができると思います。 – Tomalak
申し訳ありませんが、スペーシングが少し上に上がってしまいました。私はJTidyで-nプロパティを見つけましたが、HTMLではなくXHTMLを解析するためのオプションを見つけることができませんでした。つまり、入力をHTMLとして解析します。つまり、'エンティティを認識しません。私は実体を見て、エンティティを追加できるかどうかを確認しましたが、運はありません。実際には、エンティティ(EntityTable)を定義するソースコードが見つかりました。'が定義されていませんでした。他の252個のHTMLエンティティは – Taras