[英]Reading attributes from XML elements
我正在嘗試使用下面發布的Java代碼顯示“ x”的值,但是什么也不顯示。 請讓我知道我的錯誤在哪里:
Java代碼:
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
System.out.println("\n"+nList.getLength());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if(eElement.getAttribute("place") != null){
System.out.println("x: " + eElement.getElementsByTagName("place").item(0).getTextContent());
}
}
}
XML檔案:
<?xml version="1.0" encoding="UTF-8"?>
<document>
<group id="Fontanestra">
<place x="4222873.962227057" y="2902240.7064015563" class="hdlamp lamp651
Fontanestra"/>
<place x="4222675.856667058" y="2902341.1436763224" class="hdlamp lamp745
Fontanestra"/>
<place x="4222761.571650493" y="2902285.145924819" class="hdlamp lamp871
Fontanestra"/>
<place x="4222703.30618614" y="2902320.7303823503" class="hdlamp lamp972
Fontanestra"/>
<place x="4222802.65477977" y="2902265.5807657656" class="hdlamp lamp1084
Fontanestra"/>
<place x="4222935.246730494" y="2902220.7360558496" class="hdlamp lamp1110
Fontanestra"/>
<place x="4222734.639113373" y="2902300.2547685634" class="hdlamp lamp1215
Fontanestra"/>
<place x="4222837.368032" y="2902252.747460649" class="hdlamp
lamp1225 Fontanestra"/>
<place x="4222904.859771981" y="2902230.8135758354" class="hdlamp lamp1336
Fontanestra"/>
</group>
</document>
if(eElement.getAttribute("place") != null){
據我了解的XML,“地方”不是一個屬性
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if ("place".equalsIgnoreCase(eElement.getTagName())){
System.out.println("x: " + eElement.getAttribute("x"));
}
}
查看您的代碼,我認為nList
是通過調用獲得的:
NodeList nList = someDocument.getElementsByTagName("group");
因此,您將需要調整循環結構,並按名稱搜索而不是查找屬性:
for (int i = 0; i < nList.getLength(); i++) {
Node groupNode = nList.item(i);
NodeList placeList = groupNode.getChildNodes();
for (int j = 0; j < placeList.getLength(); j++) {
Node placeNode = placeList.item(j);
if (placeNode instanceof Element) {
Element element = (Element) placeNode;
if ("place".equalsIgnoreCase(element.getTagName())) {
System.out.println("x: " + element.getAttribute("x"));
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.