проверить, равны ли два элемента DOM в Java - PullRequest
3 голосов
/ 20 декабря 2010

Есть ли способ проверить, равны ли два элемента dom в Java?

Какой лучший способ проверить равенство между двумя элементами в JUnit Testing. Если есть java-метод для проверки равенства между двумя элементами dom, то, возможно, я мог бы использовать assertTrue поверх этого java-метода. Будет ли это работать?

Скажем, у меня есть два dom-узла, n1 и n2, я попробовал следующее в тесте junit:

assertTrue(n1.isEqualNode(n2));

Пожалуйста, посмотрите результат моих тестовых выписок

node n1 is: <?xml version="1.0" encoding="UTF-8"?><user trust="false"><userid>user</userid><password>70A0C520F974F76D994779C92326BEFFDECC344B</password><username>sony</username><organization>org</organization></user>

node n2 is: <?xml version="1.0" encoding="UTF-8"?><user trust="false">
  <userid>user</userid>
  <password>70A0C520F974F76D994779C92326BEFFDECC344B</password>
  <username>sony</username>
  <organization>org</organization>
</user>

Это приводит к ошибке подтверждения Java.

Узлы, которые я использовал, являются точными копиями друг друга с одинаковыми списками и значениями дочерних узлов.

Спасибо, Sony

Ответы [ 2 ]

2 голосов
/ 20 декабря 2010

Вы можете использовать XmlUnit http://xmlunit.sourceforge.net/ для проверки значений xml.

1 голос
/ 20 декабря 2010

Согласно документу Java: public boolean isEqualNode(Node arg);

Проверяет, равны ли два узла. Этот метод проверяет на равенство узлы, а не одинаковость (т.е. два узла являются ссылками на один и тот же объект), который может быть проверен с Node.isSameNode (). Все узлы, которые то же самое будет равно, хотя обратное не может быть правдой.

Откройте сеанс отладки в вашей любимой IDE и проверьте, идентичны ли идентификаторы объектов n1 и n2 в n1.isEqualNode(n2).

Если вы ищете тот же узел, попробуйте использовать public boolean isSameNode(Node other);.

...