我有两个 XML 文件:
<!------------------------File1--------------------------------->
<note id="ignoreThisAttribute_1">
<to>Experts</to>
<from>Matrix</from>
<heading id="dontIgnoreThisAttribute_1">Reminder</heading>
<body>Help me with this problem</body>
</note>
Run Code Online (Sandbox Code Playgroud)
<!------------------------File2--------------------------------->
<note id="ignoreThisAttribute_2">
<to>Experts</to>
<from>Matrix</from>
<heading id="dontIgnoreThisAttribute_2">Reminder</heading>
<body>Help me with this problem</body>
</note>
Run Code Online (Sandbox Code Playgroud)
在比较这两个文件时,我必须忽略idNode: 的属性: 。note
我在用DiffBuilder:
Diff documentDiff = DiffBuilder.compare(srcFile).withTest(destFile).build()
Run Code Online (Sandbox Code Playgroud)
大多数在线解决方案建议实施DifferenceEvaluator:
也尝试过,但这会忽略具有属性 id 的所有节点,而我想忽略特定节点的属性:
Diff documentDiff = DiffBuilder.compare(srcFile).withTest(destFile).build()
Run Code Online (Sandbox Code Playgroud)
在我的测试类中调用方法:
public class IgnoreAttributeDifferenceEvaluator implements DifferenceEvaluator {
private String attributeName;
public IgnoreAttributeDifferenceEvaluator(String attributeName) {
this.attributeName = attributeName;
}
@Override
public ComparisonResult evaluate(Comparison comparison, ComparisonResult outcome) {
if (outcome …Run Code Online (Sandbox Code Playgroud)