请问,如何在下面的 XML 结构中使用属性“AdvancedAlgorithm”获取 XML 课程标签名称中第二个的属性值:
<course name="AdvancedAlgorithm">
<Teacher name="Francis" class="A" />
<Teacher name="John" class="B" />
<Teacher name="Philips" class="C" />
<course name="AlgorithmForBeginners">
<Teacher name="Simon" class="E" />
<Teacher name="Joan" class="F" />
</course>
<Teacher name="Edward" class="M" />
</course>
我尝试了各种方法来获取它,但不知何故它首先给了我一个错误的长度和一个错误的值。我在下面的代码中做错了什么?
public void getStructure(NodeList list){
for(int i= 0;i<list.getLength();i++){
Element element = (Element)list.item(i);
if(element.getNodeType()==Node.ELEMENT_NODE && element.getAttribute("name").equals("AdvancedAlgorithm"))
{
NodeList node = element.getChildNodes(); //get the child elements
System.out.println(node.getLength());
for(int k=0; k<node.getLength();k++){
Node currentNode = node.item(i);
Element e = (Element)currentNode;
System.out.println(e.getAttribute("name"));
}
}
}
我的分析:NodeList 列表的长度为 2。鉴于 XML 有两个 course 标签,但当我将 Element 元素的 ChildNodes 分配给 NodeList 节点并检查 NodeList 节点的长度时,这是真的吗,我发现它是 11 而不是 5,因为该节点有 5 个子节点。我关心的是,首先,我想知道这个 XML 结构的长度是多少,其次,如何检索第二个 . 谢谢