Если вам нужно сохранить переменные окружения в скрипте, вы можете поместить свою команду в вот такой документ, как этот. Особенно, если у вас много переменных, чтобы все выглядело аккуратно.
# 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
Как утверждает 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);
}
}
}
Я вижу три возможности (две из которых ответили другие):
документ
(то есть если корень
является
Документ
), вы можете использовать
Document.getElementsByTagName
Вот для чего нужен XPath. Чтобы получить все элементы с именем «person», вот выражение:
//person
Прямое использование API XPath JDK может быть болезненным. Я предпочитаю оболочки, которые я написал в библиотеке Practical XML: http://practicalxml.sourceforge.net/
А вот учебник, который я написал (в целом по JDK XPath, но упоминает XPathWrapper): http://www.kdgregory.com/index.php?page=xml. xpath