我的 xml 在元素中包含如下所示的文本:
<node>#<abc123></node>
所以在我的 junit 测试中,我正在做一个 assertEqual 它失败了,因为我从 xml 中得到的值看起来像:
<#abc123>
在对象上调用 toString 是否对其进行解码?或者从 StringBuffer 到 String?
最佳答案
如果您对原始 XMl 字符串进行断言 #<abc123>
它会失败,因为以下序列是 XML 特定编码,会被您的解析器翻译掉:
- <; - 这是 '<' 字符的编码
- > ; - 这是 '>' 字符的编码
首先编码的原因很明显——“<”和“>”字符在 XML 中具有特殊含义,因此将它们逐字包含在文档中会给解析器带来问题。
您需要做的是断言 XML 解析器将输出的字符串,即 '<#abc123>'
.
关于java - 试图比较字符串值,但似乎正在转换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770146/