Чтобы выбрать все атрибуты всех элементов в документе с именем Element1: //Element1/@*
. Это вернет набор узлов , содержащий атрибут узлов. Затем вы можете выполнить итерацию набора узлов.
Если у вас уже есть контекстный узел и вы хотите найти результаты под ним, запрос будет .//Element1/@*
. Это обычно более эффективно, чем запрос всего документа.
// input is an InputSource or a DOM node
NodeList nl = (NodeList) xpath.evaluate("//Element1/@*", input, XPathConstants.NODESET);
int length = nl.getLength();
for( int i=0; i<length; i++) {
Attr attr = (Attr) nl.item(i);
String name = attr.getName();
String value = attr.getValue();
}
И может быть эффективнее найти все элементы с данным именем, используя getElementsByTagName .
NodeList nl = document.getElementsByTagName("Element1");
Чтобы получить атрибуты определенного элемента, выполните итерацию его свойства attribute .
NamedNodeMap nl = element.getAttributes();
int length = nl.getLength();
for( int i=0; i<length; i++) {
Attr attr = (Attr) nl.item(i);
String name = attr.getName();
String value = attr.getValue();
}