Java 正在尝试比较字符串值,但似乎正在转换文本

Java 正在尝试比较字符串值,但似乎正在转换文本,java,string,Java,String,My xml在元素中包含文本,如下所示: <node>#&lt;abc123&gt;</node> <#abc123> #abc123 因此,在我的junit测试中,我正在执行一个assertEqual,它失败了,因为我从xml中获得的值如下所示: <node>#&lt;abc123&gt;</node> <#abc123> 在对象上调用toString会解码它吗?或者从Stri

My xml在元素中包含文本,如下所示:

<node>#&lt;abc123&gt;</node>
<#abc123>
#abc123
因此,在我的junit测试中,我正在执行一个assertEqual,它失败了,因为我从xml中获得的值如下所示:

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

在对象上调用toString会解码它吗?或者从StringBuffer转换为字符串?

这可能会帮助您

在中查找
escapeHtml

StringEscapeUtils
这可能会对你有所帮助

在中查找
escapeHtml

StringEscapeUtils

这取决于toString方法的实现。toString提供对象的字符串表示,在您的示例中,它将
转换为,这取决于toString方法的实现。toString提供了对象的字符串表示形式,在您的例子中,它将
转换为,我猜您的xml框架会在调用节点上的getText()时取消对文本的扫描。也许您可以用不同的方式访问节点内容以获取原始内容。

我的猜测是,您的xml框架会在调用节点上的getText()时取消对文本的扫描。可能您已经以不同的方式访问了节点内容以获取原始内容。

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

  • <;-这是“”字符的编码
首先编码的原因很明显,“”字符在XML中有特殊的含义,因此在文档中按字面意思包含它们会给解析器带来问题


您需要做的是对XML解析器输出的字符串进行断言,即
'

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

  • <;-这是“”字符的编码
首先编码的原因很明显,“”字符在XML中有特殊的含义,因此在文档中按字面意思包含它们会给解析器带来问题


您需要做的是对XML解析器将输出的字符串进行断言,即
'

如何从node元素获取sting?XML实际上是一个抽象数据模型,而不是文件格式,您可以使用XML解析器将其序列化为文件。当数据模型中有字符串
时,解析器将该字符串序列化为序列化输出中的
#abc123
。相反,当它再次被解析回来时,它被反序列化回
。它们不是不同的字符串,只是相同数据的不同表示形式。将它们视为不同的字符串是错误的。它们只是处于抽象表示的不同层次。如何从节点元素中获得sting?XML实际上是一个抽象数据模型,而不是文件格式,您可以使用XML解析器将其序列化为文件。当数据模型中有字符串
时,解析器将该字符串序列化为序列化输出中的
#abc123
。相反,当它再次被解析回来时,它被反序列化回
。它们不是不同的字符串,只是相同数据的不同表示形式。将它们视为不同的字符串是错误的。它们只是处于不同的抽象表示级别。XML和HTML使用稍微不同的编码规则。XML和HTML使用稍微不同的编码规则。把它们混在一起是个坏主意。