要求:查询xml中name元素的值
思路:
1.创建解析器工厂:DocumentBuilderFactory;
2.通过解析器工厂创建解析器:DocumentBuilder;
3.解析xml返回Document:parse方法;
4.得到所有name元素;
5.返回集合,遍历集合,得到每一个name元素
代码:
package cn.itcast.jasptest;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Test {
public static void main(String[] args) throws Exception{
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=builderFactory.newDocumentBuilder();
Document document=builder.parse("src/1.xml");
NodeList list=document.getElementsByTagName("name");
for(int i=0;i<list.getLength();i++) {
Node name1=list.item(i);
String s=name1.getTextContent();
System.out.println(s);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>lqw</name>
<age>12</age>
<name>pcl</name>
<age>26</age>
</person>
查询xml中第一个元素的值:
思路:
1.创建解析器工厂:DocumentBuilderFactory;
2.通过解析器工厂创建解析器:DocumentBuilder;
3.解析xml返回Document:parse方法;
4.得到所有name元素;
5.使用item方法,下标为0表示第一个元素;
6.得到具体的值,使用getTextContent方法;
public static void main(String[] args) throws Exception{
//selectAll();
selectFirstName();
}
public static void selectFirstName() throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=builderFactory.newDocumentBuilder();
Document document=builder.parse("src/1.xml");
NodeList list=document.getElementsByTagName("name");
Node name1=list.item(1);
String s=name1.getTextContent();
System.out.println(s);
}