Я пытаюсь написать Java-код для анализа XML-файла. Я хочу получить значение всех элементов «name» внутри тега «function». Но когда я использую NodeList nlList = element.getElementsByTagName («name»); есть ошибка "метод getElementsByTagName не определен для элемента типа".метод getElementsByTagName не определен для элемента типа
это мой пример файла XML: Каждый тег функции включает несколько элементов «name», которые я хочу использовать getTextContent для доступа к значению этих узлов.
<function><type><specifier>private</specifier> <name>boolean</name></type> <name>canClose</name><parameter_list>(<param><decl><type><name>IEditorReference</name></type> <name>editorReference</name></decl></param>)</parameter_list> <block>{
<decl_stmt><decl><type><name>IEditorPart</name></type> <name>editor</name> =<init> <expr><call><name><name>editorReference</name>.<name>getEditor</name></name><argument_list>(<argument><expr><name>false</name></expr></argument>)</argument_list></call></expr></init></decl>;</decl_stmt>
<if>if <condition>(<expr><name>editor</name> <name>instanceof</name> <name>IContextAwareEditor</name></expr>)</condition><then> <block>{
<return>return <expr>((<name>IContextAwareEditor</name>) <name>editor</name>).<call><name>canClose</name><argument_list>()</argument_list></call></expr>;</return>
}</block></then></if>
<return>return <expr><name>true</name></expr>;</return>
}</block></function>
Это мой код, сначала я пытался получить все элементы «функции» и после того, как я написал цикл, чтобы найти все элементы «имя» внутри тегов «функции».
Но есть s ошибка «» метод getElementsByTagName не определен для элемента типа»когда я использовал метод getElementsByTagName второй раз
String name = file.getName();
File fXmlFile = new File(dirPath + name);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("function");
for (int temp = 0; temp < nList.getLength(); temp++) {
NodeList nList1 = nList.item(temp).getChildNodes();
Node n = nList1.item(temp);
if (n.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) n;
NodeList nlList = eElement.getElementsByTagName("name");
}
}
В какой строке говорится, что ошибка была включена, а какая строка - в том, что вы нам показали? Если он действительно говорит «элемент типа» - строчный, то вы используете класс, называемый элементом, который не является тем же, что и элемент, и не поддерживает этот метод. – keshlam