public bool Matches(Document document) {
org.w3c.dom.Element element = document.getDocumentElement();
if(!GetLocalPart(element).equals(segments[0])) {
return false;
}
for(int i = 1; i < segments.length; i++) {
Matcher matcher = pattern.matcher(segments[i]);
String path = segments[i];
int index = 0;
if(matcher.Matches()) {
String value = matcher.group(2);
index = Integer.parseInt(value);
path = matcher.group(1);
}
List<org.w3c.dom.Element> list = getElementsByTagName(element, path);
if(index >= list.size()) {
return false;
}
element = list.get(index);
if(element == null) {
return false;
}
}
return match.Match(element);
}
public String ToString() {