2010-07-07 2 views
0

에 변수를 허용하지 않습니다 이유는 값을 돌려줍니다
xPath.evaluate ("[1]/주소/구성원 목록/회원", nodeMemberList, XPathConstants.STRING) 내가 찾고 있는데 왜 xPath.evaluate ("/ MEMBER_LIST/MEMBER ["+ i + "]/ADDRESS", nodeMemberList, XPathConstants.STRING) 빈 문자열을 반환합니까? for 루프에서이 작업을 수행해야하므로 "i"는 현재 항목을 나타내는 int입니다.XPath는 누군가가 친절하게도 나를 설명 할 수 있습니다 발현

+0

감사합니다. 하느님,이게 멍청한 것 같아서 고맙습니다. 나는 XPath로 시작 색인으로 0을 온라인으로 찾은 소수의 의사에 대한 나의 쓴 글을 남겨 둘 것이다. –

답변

0

i==0하면 XPath는 인덱스가 1

1

루프에 대한 시작은 1에서 하는가에서 시작하면 답이 비어있을 것인가? /MEMBER_LIST/MEMBER[0]이라는 표현식은 XPath 인덱스가 1부터 시작하기 때문에 유효한 XPath 표현식이 아닙니다. 또한 총 노드 수를 초과하는 인덱스에 액세스하는 것은 유효하지 않습니다. 예를 들어, 을 실행할 경우에만 3 개가 있습니다 (MEMBER 요소).

XPathConstants.NODESET 상수를 사용할 수도 있습니다. 주어진 표현식과 일치하는 모든 요소의 목록을 반환합니다. 그런 다음 목록을 반복 할 수 있습니다.

NodeList nodeList = (NodeList)xPath.evaluate("/MEMBER_LIST/MEMBER/ADDRESS", nodeMemberList, XPathConstants.NODESET); 
for (int i = 0; i < nodeList.getLength(); ++i){ 
    Node node = nodeList.item(i); 
    String address = node.getTextContent(); 
} 
관련 문제