以下の XML 構造の属性「AdvancedAlgorithm」を使用して、XML コース タグ名の 2 番目の属性値を取得するにはどうすればよいですか。
<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 に 2 つのコース タグがあることを考えると、それは本当ですか?しかし、NodeList ノードに Element 要素の ChildNodes を割り当て、NodeList ノードの長さを確認すると、わかりました。ノードには 5 つのサブノードがあるため、5 ではなく 11 でした。私の懸念は、まず、この XML 構造の長さを知りたいことと、2 番目の .xml を取得する方法です。ありがとう