1

我想比较两个 XML 文件。我正在使用 XMLUnit 进行比较。我在比较以下 xml 片段时遇到了一些问题。

预期的:

<Detail>
    <Participant>
        <PersonalInfo>
        <SSN>405018111</SSN>
        <!--<Title>MR</Title>-->
    </PersonalInfo>
    <!--<PersonalDemo>
        <Email>someemail@email.com</Email>
        <EDeliveryFlag>true</EDeliveryFlag>
    </PersonalDemo>-->
</Detail>

实际的:

<Detail>
    <Participant>
        <PersonalInfo>
        <SSN>405018111</SSN>
        <Title>MR</Title>
    </PersonalInfo>
    <PersonalDemo>
        <Email>someemail@email.com</Email>
        <EDeliveryFlag>false</EDeliveryFlag>
    </PersonalDemo>
</Detail>
  1. 它将失败,因为 EXPECTED 中缺少“Title”标签(因为它已被注释掉),而它存在于 ACTUAL 中
  2. 它将失败,因为 EXPECTED 中缺少“PersonalDemo”标签(因为它已被注释掉),而它存在于 ACTUAL 中
  3. 它将失败,因为“PPSDetails”在 EXPECTED 和 ACTUAL 中有不同数量的子节点(因为不考虑注释掉的节点)

我真正需要的是我想忽略那些在 ACTUAL 中被 EXPECTED 注释掉的元素

请有任何帮助

4

1 回答 1

0

我建议您必须编写自己的 XML 解析器,以便它可以看到获取您想要忽略的标签。在此任务中,您只需从预期和实际 XML 中删除被忽略的标签,并匹配其他标签以进行验证或比较。

我认为您在这里有两个选择,要么在两个解析器之间使用其中一个:

DOM parser
SAX PArser

我知道这不是最好的解决方案,所以也欢迎其他想法......

编辑

我相信你需要在XMLUint. 删除忽略的标签(任务)后将采用 XML 输入Wrapper,其余功能相同。

于 2014-03-24T14:44:05.627 回答