간단한 Java 게임을 프로그래밍 중이며 플레이어 데이터에 XML로 인코딩 된 저장 파일을 저장하려고했습니다. 현재 Java XML DOM API를 발견하고 있으며 짧은 질문이 있습니다.Java XML : 중첩 요소 가져 오기
가정하자 나는 다음과 같은 XML 파일이 (내가 아는 이해가되지 않습니다,하지만 그냥 예입니다)
<?xml version="1.0"?>
<savedGame>
<name></name>
<player>
<name>YOU</name>
<map>
<health>2000</health>
<name>map_test.map</name>
<position>
<x>0</x>
<y>0</y>
</position>
</map>
<stats>
<health>1000</health>
<xp>
<melee></melee>
<magic></magic>
<ranged></ranged>
<agility></agility>
</xp>
</stats>
<items>
<item id="0">
<amount></amount>
</item>
</items>
</player>
</savedGame>
가 지금은 선수의 건강 수준 (타 있음을 유의을 얻으려면 지도 섹션의 상태 요소). 다음 코드를 사용하여이 작업을 수행 할 수 있습니다.
String hp = ((Element) ((Element) savedGameDocument.getElementsByTagName("player").item(0)).getElementsByTagName("stats").item(0)).getElementsByTagName("health").item(0).getTextContent()
작동합니다. 그러나 그것은 나에게 매우 불쾌 해 보인다. 이러한 중첩 요소를 가져 오는 일반적인 방법입니까? ElementList 클래스가없는 이유는 무엇입니까? 이제 모든 노드를 캐스팅해야합니다.
미리 감사드립니다. Jori.
에서 데이터를 액세스하는 작업. 이 도구를 사용하면 yourjava 객체 모델을 사용하여 작업하고 XML에 직렬화를 이어받습니다. – nakosspy
글쎄 고마워, 나는 그것을 볼 것이다. 하지만 이것이 정상적인 자바 XML API로 할 수있는 최선의 방법이라면 나는 너무 행복하다. – Jori
JAXB (JSR-222)는 JDK/JRE에 포함 된 일반적인 Java XML API의 일부입니다 ('javax.xml.bind' 패키지 참조). –