참고: http://forums.sun.com/thread.jspa?threadID=5294908
evaluate() 실행하면 스트림의 처음부터 끝까지 읽어서 검색하는 듯.
그래서 첫번째를 실행하고 스트림이 닫혔기 때문에, 두번째의 evaluate()에서 예외발생
(스트림이니까 한번 쭉 읽어들이고 나면 다시 처음부분으로는 접근불가?)
검색 원본이 파일일 경우에는 이런 예외가 발생하지 않는데,
아마도 두번째 evaluate()부터는 다시 파일에서 읽어들여서 처리하는 듯하다.
StringReader sr = new StringReader(sb.toString()); InputSource xmlSource = new InputSource(sr); ret = xpath.evaluate("//GetLASeR/RET", xmlSource); // 여기까지는 가능 ret = xpath.evaluate("//GetLASeR/RET", xmlSource); // 여기서 예외발생 - Stream closed. |
그래서 첫번째를 실행하고 스트림이 닫혔기 때문에, 두번째의 evaluate()에서 예외발생
(스트림이니까 한번 쭉 읽어들이고 나면 다시 처음부분으로는 접근불가?)
검색 원본이 파일일 경우에는 이런 예외가 발생하지 않는데,
// 검색 원본 InputSource 객체 생성 - 검색 원본이 XML문서 파일이므로. InputSource xmlSource = new InputSource("WebContent/ch13/bml.xml"); System.out.println("--책 아이디로 제목 찾기"); String title = xpath.evaluate("/booklist/book/title[../@id='b2']", xmlSource); System.out.println(title); System.out.println("--책 아이디로 book 엘리먼트 찾기"); Node nBook = (Node) xpath.evaluate("/booklist/book[@id='b2']", xmlSource, XPathConstants.NODE); Element eBook = (Element) nBook; System.out.println(eBook.getAttribute("kind")); |
'프로그래밍 > ETC' 카테고리의 다른 글
[jdom] jdom을 이용한 XML 문서 생성하기 (0) | 2010.09.03 |
---|---|
[json] org.json.* 사용하기 (0) | 2010.04.20 |
[XPath] String으로 InputSource 생성하기 (0) | 2009.03.02 |
[에러] javax.xml.xpath.XPathFactory 사용 시, newInstance() 생성이 안될 때 (0) | 2009.03.02 |
06 XML 마지막날. (0) | 2007.11.28 |