私は以下のコードに従ってXMLを読むことができます。XMLを選択的に読む
これは、入力ファイルのサンプルです:私はちょうど最初PLAN
tag.The問題からタグPLAN: "Total-Cost"
と"Actual-Total-Time"
情報を読み込む必要がある
<explain>
<Query-Text>
</Query-Text>
<Plan>
<Node-Type></Node-Type>
<Startup-Cost></Startup-Cost>
<Total-Cost></Total-Cost>
<Actual-Total-Time></Actual-Total-Time>
<Actual-Rows></Actual-Rows>
<Actual-Loops></Actual-Loops>
<Plans>
<Plan>
<Node-Type></Node-Type>
<Startup-Cost></Startup-Cost>
<Total-Cost></Total-Cost>
<Actual-Rows></Actual-Rows>
<Actual-Loops></Actual-Loops>
</Plan>
</Plans>
</Plan>
</explain>
がPLAN
が内部の階層であり、これがされていることですまた読んでください。最初のPLAN
タグだけを読むのはどうすればいいですか? これは私のコードです:
File fXmlFile = new File("/home/user1/Downloads/LOGT1.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("Plan");
for (int temp = 0; temp < nList.getLength(); temp++) {
//SAMPLE Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode;
System.out.println("Total Cost query: " + eElement.getElementsByTagName("Total-Cost").item(0).getTextContent());
System.out.println("Actual Total Time query:" + eElement.getElementsByTagName("Actual-Total-Time").item(0).getTextContent());
}
このコードは、すべてのエラーを発生しませんが、それは望ましい動作に従っていません。
はい、このコードは、このリンクのものと同一である:http://www.guj.com.br/t/melhor-forma-de-ler-xml/ 90593/6 これは必要な方法では機能しません。最初のPLANタグの情報のみを表示する必要があり、それを実行していません。 ヒントはありますか? – Neto