는 XPath가 정확하고 작품을 좋아, 문제는 그게라고 생각합니다
list.item(i).getChildNodes().item(0).getTextContent());
는 공백없이 XML의 경우에 <name>
소자 반면 공간과 XML의 경우 오른쪽 <employee>
후의 공간 즉, XPath를 일치하는 노드의 제 1 자식 노드를 얻는다. 제 employee
요소의 자식 노드가 공백 인 경우에 다른 단어 (라인 당 하나)에서
:
<name> . . . </name>
<company-no> . . . </company-no>
<chunk-id> . . .</chunk-id>
하고 : 공간이없는 경우
[spaces]
<name> . . . </name>
[spaces]
<company-no> . . . </company-no>
[spaces]
<chunk-id> . . .</chunk-id>
그들이있다 첫 번째 경우에 필요한 자식 노드는 1, 3 및 5이고 두 번째 경우는 0, 1 및 2입니다.
이 코드를 수정해야한다고 생각합니다.
System.out.println("Name: " +list.item(i).getChildNodes().item(0).getTextContent());
System.out.println("Company: "+list.item(i).getChildNodes().item(1).getTextContent());
System.out.println("Chunk: "+list.item(i).getChildNodes().item(2).getTextContent());
다른 XPath를 사용하여 이름, 회사 및 청크 하위 노드를 가져 오거나 공백이 포함 된 하위 노드를 건너 뛸 수 있습니다.
구체적으로 XPathFactory가 실패했다고 생각하는 이유는 무엇입니까? 어쩌면 적절한 XPath 표현식을 작성하는 법을 묻는 것입니까? – goat
@Rambo : 네 적절한 XPath 표현식을 공식화하는 방법 (입력 XML이 태그 사이에 공백이 있고 DOM으로 변환되는 문자열 인 경우) – SDS