File fXmlFile = new File(path);//path is a String
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document XMLbook = dBuilder.parse(fXmlFile);
Node root = XMLbook.getFirstChild(); //(1)
Node book = XMLbook.getElementsByTagName("BOOK").item(0);//(2)
Node lastChapter=book.getLastChild();//(3)
Node lastSubChapter=lastChapter.getLastChild(); //(4)
...
}
문제는 그렇게 내 프로그램이 잘못된 종료 :(나는 내가 뭘 잘못했는지 아무 생각이 ... 코드가 좋아 보인다해야 lastSubChapter
에서 널 (null)에 도달 할 수 있습니다.자바에서 XML 노드를 얻으려고 노력
또한, 내가 무엇을 나타내는 NULL 얻을 돈`t : 노드 값을
- [ROOT : NULL] - 디버깅 할 때 내가 무엇을보고
- ? [BOOK : NULL] - [
- 을 디버깅 할 때 내가 무엇을보고 #text :] - wh 내가 디버깅 할 때 - 무슨 의미입니까?
- 문제가 발생했습니다. 여기
lastSubChapter
는 :(NULL 얻는 이유는
내가 읽는 오전 XML 파일은 다음과 같습니다?.
<?xml version="1.0"?>
<ROOT>
<TITLE>Portocalia ca zapada</TITLE>
<BOOK>
<Chapter name="1">
<Subchapter name="1.1">
<paragraph>Primul paragraf!</paragraph>
</Subchapter>
</Chapter>
<Chapter name="2">
<Subchapter name="2.1">
<paragraph>A fost o data ca niciodata</paragraph>
</Subchapter>
<Subchapter name="2.2">
<paragraph>In luna a13a ea s-a maritat.</paragraph>
</Subchapter>
<Subchapter name="2.3">
<paragraph>In continuare, bineinteles</paragraph>
<paragraph>asa cum se intampla in toate povestile</paragraph>
</Subchapter>
</Chapter>
</BOOK>
</ROOT>
내가 마지막 노드 Subchapter
, 이름이 "2.3"인 하나를 얻으려면
내가 그것을 얻을 수있는 다른 안전한 방법이 있습니까?
DOM을 사용해야하는 특별한 이유가 있습니까? JAXB를 사용할 수 있습니까? – AlexR
그리고 어떻게 생겼을까요? 그냥 학교 프로젝트 일뿐입니다 ... 저는 Google에서 검색 한 내용을 사용했습니다 ... 전에 Java로 XML을 사용하지 않았습니다. – Lulu
XML 데이터의 유형에 SAX Parser를 제안합니다. 이후 작고 간단합니다. SAX 파서를 사용하면 Element (태그) 이름으로 데이터를 파싱 할 수 있습니다. 매우 쉽고 사용하기 쉽습니다. – Lokesh