это мой кодXML нс атрибут игнорировать используя блок XML
Scanner s = new Scanner(new File("ignore.txt"));
final ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
list.add(s.next());
}
s.close();
int lengthList = list.size();
final Set<String> values = new HashSet<String>(list);
Diff myDiff1 = DiffBuilder.compare(writer1.toString()).withTest(writer.toString())
.checkForSimilar()
.checkForIdentical()
.ignoreWhitespace()
.normalizeWhitespace()
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText))
.withNodeFilter(new Predicate<Node>() {
public boolean test(Node n) {
String temp = Nodes.getQName(n).getLocalPart();
//System.out.println(temp);
return !(n instanceof Element &&
values.contains(temp));
}
})
.withAttributeFilter(new Predicate<Attr>(){
public boolean test(Attr n){
javax.xml.namespace.QName attrName = Nodes.getQName(n);
//System.out.println(attrName.toString());
//QName Temp = new QName();
//System.out.println(Temp.toString()+n.toString());
Boolean temp1 = !values.contains(attrName.toString());
//Boolean temp1 =!attrName.toString().equals("answerType") ;
//System.out.println(temp1);
//return !attrName.equals(new QName("balType",null, null, "curCode"));
return temp1;
}
})
.build();
мой файл XML является
<ns3:CoreExceptionFault xmlns:ns3="http://core.soayodlee.com">
<faultText>com.yodlee.util.system.ycache.CobrandNotSupportedException: The CobrandCache for the cobrand 10004 is not initialized.</faultText>
</ns3:CoreExceptionFault>
Я хочу, чтобы игнорировать Xmlns: NS3 атрибут. Вышеупомянутый файл Ignore.txt содержит все узлы и атрибуты, которые мне нужно игнорировать. Но когда я добавляю xmlns: ns3, он не игнорирует атрибут. Я использую XMLunit 2.2.1
Декларации пространства имен не являются нормальными атрибутами, XMLUnit, вероятно, даже не видит его (как атрибут, только его эффект). Какой элемент вы хотите сравнить с этим? Я не уверен, что понимаю, что вы подразумеваете, игнорируя это. –
Я использую фильтр атрибута и фильтр узла, чтобы игнорировать атрибуты и узлы, которые я не хочу утверждать. Итак, я хочу игнорировать этот «xmlns: ns3 =» http://core.soayodleee.com «>» при сравнении xml. Используя приведенный выше код, он не работает, пожалуйста, помогите мне –
Объявления пространства имен не являются нормальными атрибутами, вы не можете использовать для них атрибут AttributeFilter. Как выглядит ваш другой XML. Является ли 'CoreExceptionFault' внутри одного пространства имен (URI-мудрый), как в вашем фрагменте, или является одним XML без каких-либо пространств имен? –