XML DTD约束 对xml文件的crud的查询Read Retrieve操作 xml递归遍历

本地的dtd文档

xml中引入dtd文档

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <书>
        <书名>Java就业培训教程</书名>
        <作者>张孝祥</作者>
        <售价>39.00</售价>
    </书>
    <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00</售价>
    </书>
        <狗></狗>
</书架>

引入后,发现狗狗是不合法的,必须符合dtd约束

根据下面dtd文档生成xml文档

当中有正则,其中+表示一次或多次  ?表示0次或多次 *表示0次或多次

dtd的约束无法约束数字等特有表达,只能字符串,所以基本被淘汰

package com.swift.xml;

import java.io.IOException;

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

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DemoXML {

    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse("src/index.xml");
        NodeList list = document.getElementsByTagName("书");
        Node node = list.item(1);
        // 拿到书的所有文本
        String text = node.getTextContent();
        System.out.println(text);
        // 得到根节点
        Node root = document.getElementsByTagName("书架").item(0);
        // 递归遍历不包括文本
        traverse(root);

    }

    private static void traverse(Node root) {

        if (root instanceof Element) {
            System.out.println(root.getNodeName());
        }
        NodeList list = root.getChildNodes();
        for (int i = 0; i < list.getLength(); i++) {

            Node node = list.item(i);
            traverse(node);

        }
    }

}

查询与递归操作

其中要注意:Element类的包导入有很多选择,这里要选择w3c的

原文地址:https://www.cnblogs.com/qingyundian/p/8476600.html

时间: 2024-07-30 16:35:09

XML DTD约束 对xml文件的crud的查询Read Retrieve操作 xml递归遍历的相关文章

Java File 类 文件的常用操作(递归遍历所有文件,统计文件大小,删除文件)

1 package com.beiwo.homework; 2 3 import java.io.File; 4 5 /* 6 4.将一个文件夹中所有的文件查找出来,按照一定的格式 7 分析 : 1.一个文件夹中存在文件,子文件夹 8 2.除了当前文件夹,还有子文件夹中的文件也需要找出来. 9 3.子文件查找文件和当前文件查找文件是一样的操作,就可以定义一个方法来做文件查找 10 11 3.删除一周前的数据 12 13 2.获取文件夹中所有文件的大小 14 15 1.判断是否有隐藏文件 16 1

linux文件夹操作及递归遍历文件夹

文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mode_t mode); //rmdir 删除文件夹 #include <unistd.h> int rmdir(const char *pathname); //dopendir/fdopendir  //打开文件夹 DIR是一个结构体,是一个内部结构,用来存储读

C#操作XML文件实例汇总

针对XML文件的操作是C#程序设计中非常常见的功能.本文即以实例展示了C#操作XML文件的几个常见的示例.具体如下: 1.返回节点下标 public static XmlDocument getDoc(String path)//加载xml文档 { XmlDocument doc = new XmlDocument(); doc.Load(path); return doc; } /// <summary> /// 返回找到的节点下标 /// </summary> /// <

C#操作XML增删改查

XML文件是一种常用的文件格式,不管是B/S还是C/S都随处可见XML的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件. “在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型

C#操作Xml

ML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件. “在程序中访问进

ActionScript 3操作XML 详解

AS3引入了E4X ,它是根据ECMAScript标准处理XML 数据的全新机制.这使得程序员在程序中无缝地操作XML.在AS3中可以使用XML字面值将XML数据直接写入代码,该字面值将被自动解析. 一.AS3中的XML入门 1.可以将XML直接写入代码 public var employeelist:XML=<employeelist> <employee> <name first="Conan" last="O'Brien" /&g

Dom4j操作xml

boolean flag = budgetCommon.createFolderFile("C:\\mfmis\\DefaulSetting\\DefaulBudgetorginConfig.xml");//"+format.format(new Date())+" if(flag){//若返回为true,则代表此目录下的文件不存在,为第一次创建 budgetCommon.saveDefaulXML(defaulSettingForm,defaulSettingDi

【转】C#操作xml

XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件. "在程序中访问

C#学习笔记(12)——三种方法操作XML

说明(2017-7-11 16:56:13): 原文地址: C#中常用的几种读取XML文件的方法 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其