我希望获得所有直接子女的拳击手名单。
XML由外部源提供。我无法控制其内容或格式。
Boxer标签通过Match标签用作Group的直接子节点,也用作Group的孙子。
<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>
当我使用
时var groups = competitionDoc.getElementsByTagName("Group");
var boxers = groups[0].getElementsByTagName("Boxer");
我得到名为&#34; Boxer&#34;的所有6个标签的列表它们是Group标签的后代。
我如何只获得Group的两个直接子女?
答案 0 :(得分:0)
当我遍历group [g] .getElementsByTagName(&#34; Boxer&#34;)返回的所有元素时,我将parentElement信息转换为字符串,然后我可以使代码以第一个子字符串为条件。
将groupBoxers [gb] .parentElement变为字符串:
groupBoxers[gb].parentElement.outerHTML
返回,例如
<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>
然后我遍历组[g] .getElementsByTagName(&#34; Boxer&#34;)返回的所有元素,我可以
if (groupBoxers[gb].parentElement.outerHTML.substring(1,6) == "Group") {
// do something with this Boxer - it is a direct child of a Group
}