Текст XML-тега в Java
После разбора строки в объект Document
значение простого тега берут у найденного узла:
<root>
<label>alpha</label>
</root>
Поиск по имени и вывод текста в консоль:
import org.w3c.dom.Element;
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>
<label>alpha</label>
</root>
""";
var doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(new InputSource(new StringReader(xml)));
Element label = (Element) doc
.getElementsByTagName("label")
.item(0);
System.out.println(label.getTextContent());
}
}
Если данные разнесены по нескольким дочерним тегам, каждый ищут отдельно внутри общего родителя:
import org.w3c.dom.Element;
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>
<record>
<title>alpha</title>
<code>01</code>
</record>
</root>
""";
var doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(new InputSource(new StringReader(xml)));
Element record = (Element) doc
.getElementsByTagName("record")
.item(0);
String title = record
.getElementsByTagName("title")
.item(0)
.getTextContent();
String code = record
.getElementsByTagName("code")
.item(0)
.getTextContent();
System.out.println(title);
System.out.println(code);
}
}
Дан следующий XML:
String xml = """
<root>
<name>john</name>
</root>
""";
Выведите в консоль имя юзера.
Дан следующий XML:
String xml = """
<root>
<user>
<name>john</name>
<surn>smit</surn>
</user>
</root>
""";
Выведите в консоль имя и фамилию юзера.