У меня есть файл XML, как:Java-код для разбора части XML-файл
<db>
<employees name="aaa">
<employee id="111">
<firstName>Rakesh</firstName>
<lastName>Mishra</lastName>
<location>Bangalore</location>
</employee>
<employee id="112">
<firstName>John</firstName>
<lastName>Davis</lastName>
<location>Chennai</location>
</employee>
<employee id="113">
<firstName>Rajesh</firstName>
<lastName>Sharma</lastName>
<location>Pune</location>
</employee>
</employees>
<employees name="bbb">
<employee id="222">
<firstName>a</firstName>
<lastName>a</lastName>
<location>a</location>
</employee>
<employee id="223">
<firstName>s</firstName>
<lastName>s</lastName>
<location>s</location>
</employee>
<employee id="224">
<firstName>d</firstName>
<lastName>d</lastName>
<location>d</location>
</employee>
</employees>
</db>
Есть ли способ, где я могу разобрать только первую часть сотрудников т.е. данных внутри <employees name="aaa">
и </employees>
Моего Явы код выглядит следующим образом:
public static void main(String args[]) {
try {
File stocks = new File("C:\\employee.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(stocks);
doc.getDocumentElement().normalize();
deList nodes = doc.getElementsByTagName("employee");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.println("\nStock firstName: " + getValue("firstName", element));
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static String getValue(String tag, Element element) {
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
return node.getNodeValue();
}
в этом коде я не могу пометить, как
deList nodes = doc.getElementsByTagName("employee name="aaa"");
Я даже создал строку этого имени enitre и передал, но все равно никаких решений. Может ли кто-нибудь помочь мне в этом.
Вы можете использовать SAX парсер или XPath для запроса DOM, то вроде '/ дб/сотрудников [@ имя =«ааа»]/employee' должен вернуть все' employee' узлы, которые являются дочерними '/ db/employees' с атрибутом' name', равным 'aaa' – MadProgrammer
ok я буду искать его спасибо – BJK