java - 试图比较字符串值,但似乎正在转换文本

标签 java string

我的 xml 在元素中包含如下所示的文本:

<node>#&lt;abc123&gt;</node>

所以在我的 junit 测试中,我正在做一个 assertEqual 它失败了,因为我从 xml 中得到的值看起来像:

<#abc123>

在对象上调用 toString 是否对其进行解码?或者从 StringBuffer 到 String?

最佳答案

如果您对原始 XMl 字符串进行断言 #&lt;abc123&gt;它会失败,因为以下序列是 XML 特定编码,会被您的解析器翻译掉:

  • <; - 这是 '<' 字符的编码
  • > ; - 这是 '>' 字符的编码

首先编码的原因很明显——“<”和“>”字符在 XML 中具有特殊含义,因此将它们逐字包含在文档中会给解析器带来问题。

您需要做的是断言 XML 解析器将输出的字符串,即 '<#abc123>' .

关于java - 试图比较字符串值,但似乎正在转换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770146/

相关文章:

java - 逐个字段的通用对象比较器

java - 如何从条目流中生成 map ?

java - 在 Tomcat7 上安装应用程序

java - 何时调用 SecurityContextHolder.setContext()?

javascript - 在正则表达式 Javascript 中获取内部字符串前后的字符串

java - 无法找到 XML 模式命名空间的 Spring NamespaceHandler [http ://www. springframework.org/schema/mvc

PHP::完全限定方法文字到字符串

string - Prolog:检查字符串的第一个和最后一个字符是否是左右花括号 ('{' & '}' )

python - 在python中自动添加字符串内的引号

Python 将长度列为字符串