首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLUnit中的setIgnoreWhitespace问题

XMLUnit中的setIgnoreWhitespace问题
EN

Stack Overflow用户
提问于 2012-12-12 16:52:07
回答 3查看 2.7K关注 0票数 1

我很难让xmlunit使用setIgnoreWhitespace忽略我的XML中的空格...你知道哪里出了问题或者我可以检查什么吗?

JVM: 1.6,XMLUnit 1.3,集成开发环境: JDeveloper 11.1.1.6

例如,下面返回“子节点的预期数量'2‘,但却是'1'”。如果我去掉额外的空格,它就会通过。

代码语言:javascript
复制
@Test
public void testExample()  {
    String inputXML = "<test><innertest>data</innertest></test>";
    String expectedResultXml = "<test> <innertest>data</innertest></test>";

    XMLUnit.setIgnoreWhitespace(true);
    XMLUnit.setIgnoreComments(true);
    XMLUnit.setIgnoreDiffBetweenTextAndCDATA(true);

    try {
        assertXMLEqual("Did not match!!", expectedResultXml, inputXML);
    } catch(Exception e) {}
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-12 19:21:16

我的类路径中一定有一些不兼容的XML库。如下所示覆盖JAXP库解决了这个问题(还添加了xerces和xalan jar)。

代码语言:javascript
复制
    XMLUnit.setControlParser("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
    XMLUnit.setTestParser("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
    XMLUnit.setSAXParserFactory("org.apache.xerces.jaxp.SAXParserFactoryImpl");
    XMLUnit.setTransformerFactory("org.apache.xalan.processor.TransformerFactoryImpl"); 
票数 2
EN

Stack Overflow用户

发布于 2012-12-12 20:45:16

这看起来有点像您所期望的那样,任何空格字符都将被忽略,但对于该设置来说,情况并非如此。

请参阅XMLUnit.setIgnoreWhitespace

比较节点值时是否忽略空格。

..。

设置此参数对文本中的空白没有影响。

此设置并不意味着将删除(且不检查)纯空格文本节点。这只意味着在比较<test>元素的节点值时会忽略空格。但那次测试并没有导致这条消息。在您的例子中,对子节点计数的检查确实引发了消息。

有关更详细的说明和更多配置选项(例如XMLUnit.setNormalizeWhitespace),请参阅3.8.1. Whitespace Handling

票数 1
EN

Stack Overflow用户

发布于 2015-09-24 21:43:42

像@user392909那样覆盖JAXP库对我来说并不成功。

但我的项目中与另一个库的冲突是根本原因。首先,我更改了一些库的导入顺序,最终修复了测试。因此,我能够识别出冲突的库。是j2ee.jar。

我删除了它(不得不用tomcat-catalina.jar、tomcat-juli.jar和javamail.jar替换它,以解决即将出现的编译错误)。

导入顺序不再重要,因为j2ee.jar已被移除/替换,并且xml diff现在可以按预期工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13835996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档