提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
XML(可扩展标记语言)是一种非常常用的标记语言,用于表示结构化数据。XML以纯文本的形式来表示数据,它具有良好的可扩展性和可读性,被广泛应用于数据交换和信息共享领域
一、为什么要创建并引入以dtd结尾命名的文件
可以约束XML文件中可以包含哪些元素、哪些属性、及元素个数和元素之间的关系和元素的顺序。
在包含DTD的XML文件中,如果XML内容不满足DTD要求,会提示错误。简单的来说就是方便书写XML文件
二、创建步骤
1.创建dtd文档
代码如下(示例):
<!ELEMENT phones (phone*)>
<!ELEMENT phone (name,money)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT money (#PCDATA)>
<!ATTLIST phone id CDATA #REQUIRED>
-- ELEMENT 元素
-- ATTLIST 属性 加属性要确定所加属性的元素
-- (phone) 一个
-- (phone*) 0-多个 ( 建议使用 )
-- (phone+) 1-多个
-- #PCDATA 元素是字符串类型 不能有子元素也不能为空 这个与属性名称空开一格 且加括号
-- CDATA 属性控制
-- #REQUIRED 强制
-- #FIXED 值 固定值
2.创建XML文件
代码如下(示例):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE phones SYSTEM "test01.dtd">
<phones>
<phone id="01">
<name>华为</name>
<money>9000</money>
</phone>
</phones>
<!-- xml引入的固定格式->
<!- <!DOCTYPE 元素名称(根节点) SYSTEM "文件名称.dtd"->
3. 解析XML文档
代码如下(示例):
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//获取文档构建对象
DocumentBuilder db = dbf.newDocumentBuilder();
//使用文档构建对象 将xml解析为document对象
Document parse = db.parse(new File("test01.xml"));
//更具标签名获取标签
NodeList r = parse.getElementsByTagName("phones");
//文档中根标签仅有一个 获取更标签
Node item = r.item(0);
//获取根标签直接子标签
NodeList childNodes = item.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node item1 = childNodes.item(i);
//如果是元素节点继续执行,排除换行给解析带来的影响
if (item1.getNodeType()== Node.ELEMENT_NODE){
NodeList childNodes1 = item1.getChildNodes();
for (int i1 = 0; i1 < childNodes1.getLength(); i1++) {
Node item2 = childNodes1.item(i1);
if (item2.getNodeType()== Node.ELEMENT_NODE){
String textContent = item2.getTextContent();
System.out.println(textContent);
}
}
}
}
总结
在创建XML文档之前,需要仔细考虑文档的结构和元素,并选择适当的工具和方法来创建和验证文档,以确保文档的质量和有效性。