gpt4 book ai didi

节点值内部的 Java XML 节点

转载 作者:行者123 更新时间:2023-11-30 10:45:06 25 4
gpt4 key购买 nike

我有一个这样的 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 循环,以获取车库内标签名称为“cars”的所有元素。

    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 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com