小编Ish*_*Ish的帖子

使用 XMLUnit 2.X 比较 xml 文件时忽略特定节点的特定属性

我有两个 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)

java xml xmlunit xml-parsing xmlunit-2

2
推荐指数
1
解决办法
2497
查看次数

标签 统计

java ×1

xml ×1

xml-parsing ×1

xmlunit ×1

xmlunit-2 ×1