gpt4 book ai didi

java - 比较两个 XML

转载 作者:行者123 更新时间:2023-12-01 14:51:52 24 4
gpt4 key购买 nike

我的 Java EE 应用程序中有一个案例,比如我需要比较两个大型自动生成的 XML。我只需要检查两个 XML 是否相等(标签和值)。

我尝试使用XMLUnit,但即使标签之间有空格,它也会返回false(这些XML是自动生成的!)。有没有有效的方法来做到这一点或写下我们自己的逻辑?

最佳答案

我建议 StAX。最好处理大文件。这可能是这样的

private boolean compare(XMLEventReader xr1, XMLEventReader xr2) throws XMLStreamException {
for (;;) {
XMLEvent e1 = nextTag(xr1);
XMLEvent e2 = nextTag(xr2);
if (e1 == null || e2 == null) {
return e1 == e2;
}
if (!equals(e1, e2)) {
return false;
}
}
}

private static XMLEvent nextTag(XMLEventReader xr) throws XMLStreamException {
while (xr.hasNext()) {
XMLEvent e = xr.nextEvent();
if (e.getEventType() == XMLStreamConstants.START_ELEMENT) {
return e;
}
}
return null;
}

private boolean equals(XMLEvent e1, XMLEvent e2) {
// compare attributes and content
return false;
}

关于java - 比较两个 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14769776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com