2009-07-10 3 views
1

XML 패킷을 트래버스하기 위해 Hpricot을 사용하고 있습니다. 각 노드에 대해 명의 자식 목록을 얻고 싶습니다. 그러나 사용시Hpricot을 사용하여 탐욕스럽지 않은 검색이 가능합니까?

(current_node/:section) 

나는 직계 아이들뿐만 아니라 모든 자손 섹션을 얻고 있습니다.

어떻게이 문제를 해결할 수 있습니까? documentation에서

+0

오늘도 알아 내려고 노력했습니다. –

답변

1

current_node.children 만 사용할 수 있습니다.

+0

이 방법이 효과적이지만 노드 기반이기 때문에 줄 끝/문자 "\ n"도 제공합니다. 따라서 결과 배열을 반복하고 요소 만 선택해야합니다. 또한 전체 요소를 반환합니다. 그래서 그 요소가 자식을 가지고 있다면'doc.at ("element1"). children [1]'은 예를 들어'{elem "\ n"{emptyelem } "\ n"} "를 반환 할 수 있습니다. 나는 이것이 원래의 문제인지 아닌지를 알 수 없다. – atomicules

0

:

단일 요소를 찾고 있다면, 방법에는 표현식을 사용하여 첫 번째 요소를 반환합니다. 이 경우 이 Hpricot :: Elements 배열이 아닌 이 아닌 요소 자체를 반환합니다.

다음 중 어떤 것이 효과가 있습니까? 원하는 경우

current_node.at(:section) 

은 또한 xpath child operator을 사용할 수 있습니다.

+0

나는 모든 직접적인 아이들을 찾고 있습니다. 그 아이들은 무엇이든 될 수 있습니다. –

+0

그래,이 질문은 질문하지 않습니다. 그는 첫 번째가 아니라 모든 아이들을 요구합니다. –

관련 문제