서문 : java 용 docx 파서에서 작업하고 있습니다. docx 형식은 xml을 기반으로합니다. 문서를 읽을 때 JAXB를 사용하여 파트가 비 정렬 화됩니다. 그리고 XML 마크 업을 기반으로하는 특정 요소의 트리가 있습니다.apache.xerces에서 클래스의 인스턴스 인 객체를 처리하는 올바른 방법은 무엇입니까?
거의 문제 : 그러나 일부 요소 (매우 깊은 xml 수준)는 docx spec (즉, CTStyle, CTDrawing, CTInline 등)의 특정 클래스가 아닌 Object로 반환되었습니다. 이러한 객체는 실제로 xerces 클래스의 인스턴스입니다. ElementNSImpl.
문제 : xerces (예 : ElementNSImpl)의 객체를 어떻게 처리해야합니까? 가장 간단한 방법은 다음과 같습니다.
CTGraphicData gData = getGraphicData();
Object obj = gData.getAny().get(0);
ElementNSImpl element = (ElementNSImpl)obj;
그러나 좋은 해결책은 아닙니다. 나는 xerces로 직접 일한 적이 없다. 이 캐스팅을 수행하는 더 좋은 방법은 무엇입니까? (누구든지 나에게 노드를 반복하는 올바른 방법에 대한 팁을 주면 멋질 것입니다.)
아니요, 정상입니다. 그것은 사양의'any'입니다. – Roman
그러면 DOM 비즈니스에 있습니다. – bmargulies
답변을 주셔서 감사합니다, 적어도 it'a 좋은 출발점. 'any'에 대한 BTW : 경로를'하드 코딩 '할 수없고 XPath를 사용해야한다고 생각합니까? 나는 말하고 싶다 : '어떤 것'이라도 실제로 어떤 것이있을 수 있다는 것을 의미 하는가? – Roman