2017-10-14 10 views
0

Group의 직계 하위 인 모든 Boxer의 목록을 가져오고 싶습니다.HTML 콜렉션 내에 반환 된 항목의 직접 하위 항목에만 액세스

XML은 외부 소스에서 제공됩니다. 나는 그 내용이나 형식을 통제 할 수 없다.

Boxer 태그는 Match 태그를 통해 Group의 직계 하위 그룹으로 사용되며 그룹의 손자로도 사용됩니다. 내가

var groups = competitionDoc.getElementsByTagName("Group"); 
var boxers = groups[0].getElementsByTagName("Boxer"); 

를 사용하는 경우

<Round PhaseID="2" ID="Round 1"> 
    <Boxer REF="2"/> 
    <Boxer REF="3"/> 
    <Boxer REF="4"/> 
    <Boxer REF="1"/> 

    <Group ID="1"> 
     <Boxer REF="1" NumInGroup="2" NumVictories="0" NumMatches="2" PtsFor="0" PtsAgainst="0" GroupId="1"/> 
     <Boxer REF="4" NumInGroup="1" NumVictories="0" NumMatches="2" PtsFor="0" PtsAgainst="0" GroupId="1"/> 
     <Match ID="1"> 
     <Boxer REF="1"/> 
     <Boxer REF="4"/> 
     </Match> 
     <Match ID="2"> 
     <Boxer REF="4"/> 
     <Boxer REF="1"/> 
     </Match> 
    </Group> 
    ... 
</Round> 

나는 그룹 태그의 후손 "권투 선수"라는 이름의 모든 6 개 태그의 목록을 가져옵니다.

그룹의 직접적인 두 명의 자녀를 어떻게 만듭니 까?

+0

I는 .parentElement 속성 정보를 포함하고 있음을 알 수있다. parentElement를 기반으로 HTMLcollection을 제거하는 방법이 있습니까? –

답변

0

group [g] .getElementsByTagName ("Boxer")에 의해 반환 된 모든 요소를 ​​반복하면서 parentElement 정보를 문자열로 변환 한 다음 첫 번째 부분 문자열에 조건부로 코드를 적용 할 수 있습니다. 반환

groupBoxers[gb].parentElement.outerHTML 

, 예를 들면 :

문자열로 groupBoxers [기가 바이트] .parentElement를 켜려면

<Group ID="1"> 
    <Boxer REF="1" NumInGroup="2" NumVictories="0" NumMatches="2" PtsFor="0" PtsAgainst="0" GroupId="1"/> 
    <Boxer REF="2" NumInGroup="1" NumVictories="0" NumMatches="2" PtsFor="0" PtsAgainst="0" GroupId="1"/> 

    <Match ID="1"> 
    <Boxer REF="1"/> 
    <Boxer REF="2"/> 
    </Match> 

</Group> 

I는 다음 그룹 [g] .getElementsByTagName ("복서")에 의해 반환 된 모든 요소를 ​​반복하고, I는

if (groupBoxers[gb].parentElement.outerHTML.substring(1,6) == "Group") { 
    // do something with this Boxer - it is a direct child of a Group 
    }