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