Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

xml中加入了几条,为了方便查询时作为示例。

话不多说见代码注释:

DTD文件:SwordTypeDefinition.dtd









XML文件:SwordLib.xml





欢欣之刃
1000
10


夜叉
2050
30


魔棒
200
0

java代码:

package JavaLeaner.XmlTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class XmlDemo2 {

    /*
     * 按照属性sno查询
     */
    @Test
    public void Test1() throws IOException, ParserConfigurationException, SAXException 
    {
        System.out.println("请输入查找的sword的sno:");
        //这里是java 的控制台输入方法,老忘记,TT
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String sno=br.readLine();
        Element st= FindSwordBySno(sno);
        if (st != null) {
            String sname = st.getElementsByTagName("SwordName").item(0).getTextContent();
            System.out.println("此剑为:" + sname);
        }
        else
        {
            System.out.println("这里不卖!!" );
        }
        
/*        请输入查找的sword的sno:
        s2
        此剑为:夜叉
        */
    }
    
    Element FindSwordBySno(String sno)throws ParserConfigurationException, SAXException, IOException
    {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docDuilder = factory.newDocumentBuilder();
        Document doc = docDuilder.parse("src/JavaLeaner/XmlTest/SwordLib.xml");
        NodeList list = doc.getElementsByTagName("Sword");
        for(int i=0;i


转载于:https://my.oschina.net/happyBKs/blog/294170

你可能感兴趣的:(Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性)