2011-01-10 3 views
0

DOM4J를 사용하여 두 개의 XML 요소를 분석하고 있습니다. 이러한 요소DOM4J Element.attributes(). containsAll()이 예기치 않은 값을 반환합니다.

<element1 attr="val">text</element1> //org.dom4j.Element = e1 

<element1 attr="val">OtherText</element1> //org.dom4j.Element = e2 

모두가 org.dom4j.Element 경우, e1e2에 저장됩니다 요소는 다음과 같습니다.

나는 이러한 요소 모두 동일한 속성을 가질 것으로 예상, 그래서 기대 :

e1.attributes().containsAll(e2.attributes()) 

반환 true하지만 실제로 false를 반환합니다. 내가 뭔가를 분명 실종

[email protected] [Attribute: name attr value "val"] 

[email protected] [Attribute: name attr value "val"] 

: 나는 이러한 특성을 모두 검사 할 때

, 나는 다음과 같은 문자열 표현을 찾을? 내 자신의 containsAll이 동작을 검사하는 기능을 넘어, 시도해야 할 다른 것을 생각해 낼 수 있습니까?

답변

4

나는 containsAll()을 작성해야한다고 생각합니다. 기본 값은 List.containsAll()이며 equals()을 사용하는 항목을 비교합니다. DefaultAttribute doesn't overrideequals() 비교 결과는 true입니다. 운이 좋지 않습니다.