<a>12</a>
представляет элемент с одним дочерним узлом со значением «12», тогда как <a>{1}2</a>
представляет элемент с двумя дочерними узлами со значениями «1» и «2» соответственно.
Они логически различимы в Scala: x.child
- это ArrayBuffer(12)
, тогда как y.child
- это ArrayBuffer(1, 2)
, и поэтому они неравны.
А как насчет спецификации XML? Насколько я понимаю, эти два объекта XML не равны . Согласно спецификации XML , содержимое элемента состоит из последовательности одной или нескольких вещей (которые DOM называет «узлами»), и эти вещи могут быть CharData . Поэтому для элемента логично иметь два смежных дочерних элемента CharData, и это считается логически отличным от одного дочернего сцепленного CharData.
Если вы действительно хотите считать их равными, вы должны написать проход нормализации, который берет объект XML и объединяет любые смежные текстовые узлы, а затем выполняет тест на равенство.