Разбор XML путем ссылки на родительский узел с помощью переменной

1

Я пытаюсь использовать переменную, которая указывает, какие родительские узлы я обрабатываю.

ниже мой текущий xml:

<results>
    <GW>
            <result>
                     <item>Car</item>
                     <name>Bob</name
            </result>
            <result>
                     <item>Bike</item>
                     <name>Tom</name
            </result>
    </GW>

    <BF>
            <result>
                     <item>Apple</item>
                     <name>Mike</name
            </result>
            <result>
                     <item>Melon</item>
                     <name>Julia</name
            </result>
    </BF>


</results>

И вот мой код синтаксического анализа. Я хочу использовать переменные items чтобы указать, какой узел я должен анализировать GW или BF

//DOC IS ASSIGNED THE XML DATA EARLIER IN THE CODE

 Bundle bundle = getIntent().getExtras();
 int ITEMS = bundle.getInt("selection");


NodeList nodes = doc.node[ITEMS].getElementsByTagName("result");

for (int i = 0; i < nodes.getLength(); i++) {
    HashMap<String, String> map = new HashMap<String, String>();    

    Element e = (Element)nodes.item(i);
    map.put("main_content", XMLfunctions.getValue(e, "item"));
    map.put("name", XMLfunctions.getValue(e, "name"));
    mylist.add(map);            
}

Я пытаюсь анализировать только дочерние узлы GW или BF, и это зависит от значения ITEMS. Поэтому, если элементы равны 0, тогда я получаю данные из GW, и если это 1, я получаю данные из BF.

Если бы я мог догадаться, это будет что-то вроде:

NodeList nodes = doc.childNode[ITEMS].getElementsByTagName("result");
  • 0
    Не могли бы вы объяснить, что вы хотите сделать?
  • 0
    Я обновил свой вопрос выше. Пожалуйста, дайте мне знать, если это не ясно.
Теги:

1 ответ

1
Лучший ответ
Element docElem = doc.getDocumentElement();
NodeList nl = docElem.getElementsByTagName("results");
Element elem = (Element)nl.item(ITEMS);
nodes = elem.getElementsByTagName("result");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню