2

转换某些 xml (dita) 文档时,特殊字符、与号和“小于”字符 (<) 会出现问题。但是以与号为例,发生的事情是由于某种原因它在输出中重复了几次。问题是,我发现 if&amp;被替换(直接在 xml 内容中),&#38;然后它工作正常,没有重复。

我不知道是什么原因造成的,但我想做的是在 DTD 中声明与号以将其替换为&#38;. 我通过谷歌搜索发现你应该这样做:

<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd" [
 <!ENTITY amp "&#38;#38;">
]>

为简单起见,我在这里包含了内联实体声明,但我也尝试在实际的 DTD (concept.dtd) 中声明它。但它不起作用。它甚至似乎都没有起作用,因为我也尝试用它来替换它<!ENTITY amp "TEST">,只是想看看它是否有任何作用,但它没有。

那么我该怎么做呢?我只想&amp;替换为&#38; 所以我不必手动替换每个文档中的每个出现...

4

2 回答 2

1

如果您有一个 XML 处理管道对 . 做正确的事情,&#38;而对&amp;. 你的代码中有一些东西搞砸了&符号。您应该修复代码,而不是尝试通过修改 XML 文档来解决它。

于 2011-08-30T18:22:30.400 回答
1

我从氧气支持那里得到了答案。不确定这对任何人都有帮助,这是一种不寻常的情况......但是来自自定义 DITA OT 的 xercesImpl.jar 库必须包含在转换场景中。然后它起作用了。

于 2011-09-06T10:43:37.757 回答