Атрибуты группы тегов в Java
У каждого повторяющегося тега свой набор атрибутов и свой текст:
<root>
<lot sku="a1" qty="2">bolt</lot>
<lot sku="b2" qty="5">nut</lot>
<lot sku="c3" qty="1">washer</lot>
</root>
Цикл по списку сочетает getTextContent
и getAttribute для каждого узла:
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>
<lot sku="a1" qty="2">bolt</lot>
<lot sku="b2" qty="5">nut</lot>
<lot sku="c3" qty="1">washer</lot>
</root>
""";
var doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(new InputSource(new StringReader(xml)));
NodeList lots = doc.getElementsByTagName("lot");
for (int i = 0; i < lots.getLength(); i++) {
Element lot = (Element) lots.item(i);
System.out.println(lot.getTextContent());
System.out.println(lot.getAttribute("sku"));
System.out.println(lot.getAttribute("qty"));
}
}
}
Дан следующий XML:
String xml = """
<root>
<product cost="100" amount="3">
prod1
</product>
<product cost="200" amount="4">
prod2
</product>
<product cost="300" amount="5">
prod3
</product>
</root>
""";
Выведите в консоль название, цену и количество каждого продукта.