2

我目前正在使用 JDOM。我想不出一个本质上应该是一个简单问题的解决方案。

我有一个有效的 XHTML 字符串:

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

如何将其插入 XML DOM,如下所示?

<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

创建一个包含

<!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 回答
0

而 € 是有效的 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 回答