现有一个xml文件:

现在我们要通过Java代码获取每道菜的名称,即查询xml中所有name元素的值

步骤:

(1)创建解析器工厂
(2)实例化解析器
(3)解析xml返回document
(4)得到所有name元素,返回集合


Java代码如下:


package xml;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
public class XMLTest {
    public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
        // 获取解析器工厂,newInstance()方法
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        // 实例化解析器
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        // 解析xml并返回Document文件
        Document document = documentBuilder.parse("source" + File.separator + "breakfast.xml");
        // 查询元素名称,返回NodeList
        NodeList nodeList = document.getElementsByTagName("name");
        // 遍历输出
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node node = nodeList.item(i);
            System.out.println(node.getTextContent());
        }
    }
}

java项目目录结构:


 

运行结果:


 
现有一个新的需求:只调出我们的第一道菜
从上面的代码,获取了所有的菜,那么我们如果只用知道第一道菜,直接使用NodeList中的item(int index)方法,就可以了,具体代码如下:


package xml;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
public class XMLTest2 {
    public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
        // 创建解析器工厂
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        // 实例化解析器
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        // 解析xml
        Document document = documentBuilder.parse("source" + File.separator + "breakfast.xml");
        // 获取元素名称
        NodeList nodeList = document.getElementsByTagName("name");
        // item(0)  得到第一道菜
        System.out.println(nodeList.item(0).getTextContent());
    }
}

运行结果:


 
 

您必须 登录 才能发表评论