XML 파일을 구문 분석하기위한 Java 코드를 작성하려고합니다. "function"태그 안에있는 모든 "name"요소의 값을 검색하려고합니다. 하지만 NodeList를 사용할 때 nlList = element.getElementsByTagName ("name"); "메소드 getElementsByTagName이 유형 요소에 대해 정의되지 않았습니다."오류가 있습니다.메소드 getElementsByTagName이 유형 요소에 대해 정의되지 않았습니다.
이것은 내 XML 파일 샘플입니다. 각 기능 태그에는 getTextContent를 사용하여이 노드 값에 액세스하려는 여러 "name"요소가 포함되어 있습니다.
<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>
이는 처음에는 "기능"의 모든 요소를 검색하기 위해 노력하고 그 후 나는 "기능"태그 내부의 "이름"의 모든 요소를 찾기 위해 루프를 작성, 내 코드입니다.
그러나의 오류 "나는 두 번째 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");
}
}
오류가 있었으며, 우리에게 보여준 라인은 무엇입니까? 정말 "타입 요소"(소문자)를 말하면 엘리먼트와 같은 것이 아니라 그 메소드를 지원하지 않는 element라는 클래스를 사용하고 있습니다. – keshlam