我有这样的xml:
<cargalery>
<garage garagetype="Expensive" garagename="Garage1">
<cars cartype="faster" carname="Car4" />
<cars cartype="faster" carname="Car5" />
<cars cartype="slower" carname="Car6" />
</garage>
<garage garagetype = "Cheap" garagename="Garage2">
<cars cartype="slower" carname="Car1" />
<cars cartype="faster" carname="Car2" />
<cars cartype="slower" carname="Car3" />
</garage>
</cargalery>
我可以阅读车库节点:
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
URL u = new URL("xmlurl");
Document doc = builder.parse(u.openStream());
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList NodeOzet = doc.getElementsByTagName("garage");
for (int temp = 0; temp < NodeOzet.getLength(); temp++)
{
Node nOzet = NodeOzet.item(temp);
System.out.println("\nCurrent Element :" + nOzet.getNodeName());
if (nOzet.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nOzet;
System.out.println("Garage Name : " + eElement.getAttribute("garagename"));
}
}
但是我看不懂车内的车库。我如何阅读车库内的汽车?
谢谢。
最佳答案
为Element
定义了方法getAttribute("AttributeName")
。
如果要在车库中使用汽车的名称,可以通过在所有元素中通过标签名称“ garage”创建一个NodeList
来正确地进行操作,那么您应该创建一个嵌套的for循环,以通过标签名称“”获取所有元素汽车”。
for (int temp = 0; temp < NodeOzet.getLength(); temp++){
Node nOzet = NodeOzet.item(temp);
NodeList carList = eElement.getElementsByTagName("cars")
String cars = "";
for(int temp2 = 0; temp2 < carList.getLength(); temp2++){
cars += ((Element)carList.item(temp2)).getAttribute("carname") + "\t";
}
}
这样,对于每个车库,您都会在车库中找到所有的汽车,以及它们的名称
关于java - 节点值内的Java XML节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37182186/