2015-05-28 3 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 в родительском элементе. Если есть возможность более одного входа, используйте цикл для возврата списка элементов.

Смежные вопросы