Группа вложенных тегов в Java
Несколько родительских тегов часто повторяют одну структуру дочерних полей:
<root>
<entry>
<word>alpha</word>
</entry>
<entry>
<word>beta</word>
</entry>
<entry>
<word>gamma</word>
</entry>
</root>
Каждый родитель обходят отдельно, а текст берут у вложенного тега:
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.StringReader;
public class Main {
public static void main(String[] args) throws Exception {
String xml = """
<root>
<entry><word>alpha</word></entry>
<entry><word>beta</word></entry>
<entry><word>gamma</word></entry>
</root>
""";
var doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(new InputSource(new StringReader(xml)));
NodeList entries = doc.getElementsByTagName("entry");
for (int i = 0; i < entries.getLength(); i++) {
Element entry = (Element) entries.item(i);
String word = entry
.getElementsByTagName("word")
.item(0)
.getTextContent();
System.out.println(word);
}
}
}
Дан следующий XML:
String xml = """
<root>
<user>
<name>john</name>
<surn>smit</surn>
</user>
<user>
<name>eric</name>
<surn>wils</surn>
</user>
<user>
<name>kyle</name>
<surn>tayl</surn>
</user>
</root>
""";
Выведите в консоль имя и фамилию каждого юзера.
Дан следующий XML:
String xml = """
<root>
<product cost="100" amount="3">
<name>prod1</name>
<category>cat1</category>
</product>
<product cost="200" amount="4">
<name>prod2</name>
<category>cat2</category>
</product>
<product cost="300" amount="5">
<name>prod3</name>
<category>cat3</category>
</product>
</root>
""";
Выведите в консоль название, категорию, цену и количество каждого продукта.