Выполните итерации всех поколений узла XML в Java DOM

Если вам нужно сохранить переменные окружения в скрипте, вы можете поместить свою команду в вот такой документ, как этот. Особенно, если у вас много переменных, чтобы все выглядело аккуратно.

# prepare a script e.g. for running maven
runmaven=/tmp/runmaven$
# create the script with a here document 
cat << EOF > $runmaven
#!/bin/bash
# run the maven clean with environment variables set
export ANT_HOME=/usr/share/ant
export MAKEFLAGS=-j4
mvn clean install
EOF
# make the script executable
chmod +x $runmaven
# run it
sudo $runmaven
# remove it or comment out to keep
rm $runmaven
7
задан directedition 23 June 2009 в 17:45
поделиться

3 ответа

Как утверждает mmyers, для решения этой проблемы вы можете использовать рекурсию.

doSomethingWithAll(root.getChildNodes());

void doSomethingWithAll(NodeList nodeList)
{
    for (int i = 0; i < nodeList.getLength(); i++) {
        Node childNode = nodeList.item(i);
        if (childNode.getNodeName().equals("person")) {
            //do something with it
        }

        NodeList children = childNode.getChildNodes();
        if (children != null)
        {
            doSomethingWithAll(children);
        }
    }
}
10
ответ дан 6 December 2019 в 06:50
поделиться

Я вижу три возможности (две из которых ответили другие):

  1. Использовать рекурсию.
  2. Использовать XPath (может быть немного излишним для этой проблемы, но если у вас есть много таких запросов определенно что-то исследовать). Воспользуйтесь для этого помощью kdgregory; а быстрый взгляд на api показал, что немного больно использовать
  3. Если то, что у вас есть, на самом деле документ (то есть если корень является Документ ), вы можете использовать Document.getElementsByTagName
10
ответ дан 6 December 2019 в 06:50
поделиться

Вот для чего нужен XPath. Чтобы получить все элементы с именем «person», вот выражение:

//person

Прямое использование API XPath JDK может быть болезненным. Я предпочитаю оболочки, которые я написал в библиотеке Practical XML: http://practicalxml.sourceforge.net/

А вот учебник, который я написал (в целом по JDK XPath, но упоминает XPathWrapper): http://www.kdgregory.com/index.php?page=xml. xpath

4
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: