2022. 2. 22. 17:21, IT 이야기/자바
반응형
프로젝트를 하다가 xml 파일이 아닌 String 값으로 되어진 xml 태그 파일을 처리 해야 하는 일이 생겼다.
xml이라면 파싱해서 쓰면 될 것인데 String으로 담겨 있어서 난감한 상황이었다.
인터넷에 구글링 한 결과 해결 방안을 찾게 되었다.
StringBuffer sb = new StringBuffer();
//StringBuffer 만들어서 사용 할 것이기에 StringBuffer 선언
sb.append("XML 형식으로 되어진 String 파일");
//선언한 StringBuffer안에 xml 형식 String 파일을 삽입
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//Document로 파싱 하여 사용 할 것이기에 DocumentBuilderFactory 선언
DocumentBuilder builder = factory.newDocumentBuilder();
//DocumentBuilderFactory로 DocumentBuilder
Document document = builder.parse(new InputSource(new StringReader(sb.toString())));
//sb.toString을 Document 형식으로 저장
NodeList taglist = document.getElementsByTagName("Tag네임");
//document 안에서 찾고자 하는 태그값을 가져 와서 NodeList로 저장
Node tagtext = taglist.item(0).getChildNodes().item(0);
//NodeList는 List 형태 이기에 Node로 변환 하여 저장
String Tag =tagtext.getNodeValue();
// tagtext에 있는 값은 Node로 선언 되어 있어서 getNodeValue()로 String으로 변환 하여 저장
복잡한 과정을 거치지만 이것만큼 xml 처리 하기 편한게 없음.
NodeList의 경우 같은 이름을 가진 모든 걸 저장 하기에
List형태로 처리 하기에 좋은 점이 많아 보임.
해당 구문들만 있으면 XML 파싱 처리 하기 좋아 보입니다.
반응형
Comments, Trackbacks