【发布时间】:2014-05-01 20:48:35
【问题描述】:
我想比较两个 XML 文件。我正在使用 XMLUnit 进行比较。我在比较如下 xml sn-ps 时遇到了一些问题。
预期:
<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>
- 它将失败,因为 EXPECTED 中缺少“Title”标签(因为它已被注释掉),而它存在于 ACTUAL 中
- 它将失败,因为 EXPECTED 中缺少“PersonalDemo”标签(因为它已被注释掉),而它存在于 ACTUAL 中
- 它将失败,因为“PPSDetails”在 EXPECTED 和 ACTUAL 中具有不同数量的子节点(因为不考虑注释掉的节点)
我真正需要的是我想忽略那些在 ACTUAL 中被 EXPECTED 注释掉的元素
请帮忙
【问题讨论】:
-
对这些元素的要求是什么?如果是 DTD 或 Schema,则无需验证即可解析。如果是您的应用程序,您必须与应用程序协商,和/或填写虚拟值。
-
实际上 ACTUAL 是由我们的应用程序生成的。 EXPECTED中被注释掉的部分每次生成时在ACTUAL中都是不同的。这就是为什么我不想比较注释掉的部分