首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLUnit与HTML文件的不同

XMLUnit与HTML文件的不同
EN

Stack Overflow用户
提问于 2014-07-08 07:50:51
回答 1查看 638关注 0票数 0

我正在尝试对两个HTML文档使用XMLUnit的diff。为此,我将它们转换为字符串,然后从这两个字符串构造一个diff对象。

但是,这会抛出以下SAXException:

代码语言:javascript
复制
[Fatal Error] :1:177: The element type "br" must be terminated by the matching end-tag "</br>".
org.xml.sax.SAXParseException: The element type "br" must be terminated by the matching end-tag "</br>".
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.custommonkey.xmlunit.XMLUnit.buildDocument(XMLUnit.java:383)
    at org.custommonkey.xmlunit.XMLUnit.buildDocument(XMLUnit.java:370)
    at org.custommonkey.xmlunit.Diff.<init>(Diff.java:101)
    at org.custommonkey.xmlunit.Diff.<init>(Diff.java:93)
    at controllers.Api.diffUrls(Api.java:292)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$8$$anonfun$apply$8.apply(routes_routing.scala:165)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$8$$anonfun$apply$8.apply(routes_routing.scala:165)
    at play.core.Router$HandlerInvoker$$anon$7$$anon$2.invocation(Router.scala:183)
    at play.core.Router$Routes$$anon$1.invocation(Router.scala:377)
    at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:56)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:278)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:274)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29)
    at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:37)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

因此,我需要将此HTML转换为有效的XML。我看到XMLUnit提供了HTMLDocumentBuilder,它似乎提供了一种方法来实现这一点,但仅用于XPath评估。有什么简单的方法可以转换成有效的超文本标记语言,这样我就可以做XMLUnit比较了?

EN

回答 1

Stack Overflow用户

发布于 2015-02-04 03:27:18

您可以使用HTMLDocumentBuilderparse方法从您的HTML输入创建一个DocumentDiff和XMLUnit的difference engine的其他部分将愉快地与Document一起工作。

请注意,HTMLDocumentBuilder有点麻烦,您可能更适合使用专门处理HTML转换的库,比如jTidy。

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

https://stackoverflow.com/questions/24621704

复制
相关文章

相似问题

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