2015-05-28 111 views
0

我是使用XML的完整初學者,所以請耐心等待......我正在嘗試編寫一個簡單的方法,以指定名稱返回第一個子元素。按名稱返回子元素XML

我的方法是:

public Element getChild(Element parent, String childName) { 

    NodeList list = parent.getElementsByTagName(*); 

    for(int i = 0; i < list.getLength(); i++) { 
     if (list.item(i).getNodeName().equals(childName)) { 
      return (Element)list.item(i); 
     } 
    } 
    return null;   
} 

不過,該行NodeList list = parent.getElementsByTagName(*);給了我錯誤的通用「表達的非法啓動。」有人可以解釋我做錯了什麼嗎?我一直在搜索二十分鐘而沒有運氣,這意味着它要麼很模糊,要麼非常明顯。

+0

還要注意'getElementsByTagName'找到與測試相匹配的所有_descendant_元素,而不僅僅是直接的子元素。你的方法被稱爲'getChild',但它返回的節點可能是小孩,孫子等。 –

回答

0

把你*引號:parent.getElementsByTagName("*")

+0

當然。 - 請拍我。 – Cliff

0
public Element getChild(Element parent, String childName) { 

    NodeList list = parent.getElementsByTagName(childName); 
    Node listN=list.item(0); 
    NodeList listNC= listN.getChildNodes(); 
    Element listE=(Element)listNC; 
    return listE;   
} 

它將在父元素與childName只返回第一個元素。如果有多個事件的可能性,請使用循環返回元素列表。