XML学习笔记

序:很久没有用到XML了,很多东西都忘记了。最近重温了下,在这里记录下笔记。

1.XML(Extensible Mark Language)

(1)标准通用标记语言的子集

(2)用于标记电子文件使其具有结构性的标记语言

(3)适合万维网传输

(4)标记数据,定义数据类型,允许用户自定义自己的标记语言的源语言

2.设计宗旨

(1)传输数据而非显示数据
(2)XML仅仅为纯文本

3.与HTML的不同点

(1)XML用于传输存储数据,焦点在数据的内容。

(2)HTML用于显示数据,焦点在数据的外观

4.规则

(1)大小写敏感(2)正确嵌套(3)必须要有根元素(4)属性值必须加引号

(5)空格会被保留(6)不允许省略关闭标签

5.使用Java提供的API读取XML文件

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
        Document document = builder.parse(new File("src/test.xml"));
        Element root = document.getDocumentElement();
        NodeList nodeList = root.getElementsByTagName("lan");
        for(int i = 0;i < nodeList.getLength();i++){
            Element element = (Element) nodeList.item(i);
            System.out.println(element.getTagName());
            NodeList childs = element.getChildNodes();
            for(int j = 0;j < childs.getLength();j++){
                /*这里的childs.item(i)返回的Node不能转化为Element*/
                Node child = childs.item(j);
                /*防止出现#Text问题*/
                if(child instanceof Element)
                    System.out.println("  "+child.getNodeName());
            }
        }
6.使用JAVA提供的API创建XML文件

        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
        /*创建新的document*/
        Document document = builder.newDocument();

        /*创建根结点*/
        Element root = document.createElement("Languages");
        root.setAttribute("cat","it");

        Element firstChild = document.createElement("lan");
        firstChild.setAttribute("id","1");
        Element firstChildName = document.createElement("name");
        firstChildName.setTextContent("java");
        Element firstChildIde = document.createElement("ide");
        firstChildIde.setTextContent("Eclipse");
        firstChild.appendChild(firstChildName);
        firstChild.appendChild(firstChildIde);

        root.appendChild(firstChild);

        /*注意*/
        document.appendChild(root);

        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        StringWriter writer = new StringWriter();
        transformer.transform(new DOMSource(document),new StreamResult(writer));
        System.out.println(writer);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值