2011-03-09 6 views
9

मैं वर्तमान में XMLUnit के साथ काम कर रहा हूं और मुझे आश्चर्य है कि केवलid टैग की विशेषता को मैं अन्वेषण करने के लिए कॉन्फ़िगर करने का तरीका हूं।XMLUnit - तुलना में 'आईडी' विशेषता को अनदेखा करना

आपकी मदद के लिए अग्रिम धन्यवाद।

+0

देखें http://stackoverflow.com/questions/1241593/java-how-do-i-ignore-certain-elements-when-comparing-xml –

उत्तर

1

मैं इस आवश्यकता को संभालने के लिए अपने DifferenceListener को लागू करने की कोशिश कर रहा हूं (this post देखें)। परिणाम जल्द ही पोस्ट करेंगे। ऐसा लगता है कि कल कार्यान्वयन पोस्ट किया जाएगा।

+0

क्या आप उदाहरण भेज सकते हैं, कृपया? – deadfish

+0

आपको इस पोस्ट को देखना चाहिए (http://stackoverflow.com/questions/1241593/java-how-do-i-ignore-certain-elements-when-comparing-xml) यह मेरे द्वारा लागू श्रोता की तरह काफी सुंदर है । – reef

8

समाधान काफी सरल है। ATTR_VALUE मतभेदों को संभालने के लिए आप अपने DifferenceEngine को कॉन्फ़िगर कर सकते हैं।

class IgnoreIDsDifferenceListener implements DifferenceListener { 
    private static final int[] IGNORE_VALUES = new int[] { 
      DifferenceConstants.ATTR_VALUE.getId(), 
    }; 

    private boolean isIgnoredDifference(Difference difference) { 
     int differenceId = difference.getId(); 
     for (int i=0; i < IGNORE_VALUES.length; ++i) { 
      if (differenceId == IGNORE_VALUES[i]) { 
       return true; 
      } 
     } 
     return false; 
    } 

    public int differenceFound(Difference difference) { 
     if (isIgnoredDifference(difference)) { 
      return RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL; 
     } else { 
      return RETURN_ACCEPT_DIFFERENCE; 
     } 
    } 

    public void skippedComparison(Node control, Node test) { 
    } 
} 

यहाँ आवश्यक बात है कि क्या विशेषता नाम "आईडी" है की जाँच करने के लिए है: कस्टम अंतर श्रोता वर्ग जो DifferenceListener लागू करता लिखें। मानक जावा डोम कार्यक्षमता मदद कर सकता है। लेकिन मैं नियमित अभिव्यक्तियों के माध्यम से ऐसा करना पसंद करता हूं:

String controlNode = difference.getControlNodeDetail().getNode().toString(); 
controlNode .matches("^id=\".*\"") 

पीएस यह भी देखें: http://xmlunit.sourceforge.net/api/org/custommonkey/xmlunit/Difference.html

संबंधित मुद्दे