社区
Java
帖子详情
怎么在java操作XML文件根据里面的元素id并删除里面的元素
dd900901
2013-06-10 01:01:41
根据里面的id删除这本书。并要修改xml,把这个xml里面的这本书删除掉,删除后只剩10002这本书:
我是初学者请各位怎么用代码实现啊。。。
...全文
109
1
打赏
收藏
怎么在java操作XML文件根据里面的元素id并删除里面的元素
根据里面的id删除这本书。并要修改xml,把这个xml里面的这本书删除掉,删除后只剩10002这本书: 我是初学者请各位怎么用代码实现啊。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
菖蒲老先生
2013-06-10
打赏
举报
回复
用dom4j技术。
xml入门教程/xml入门教程
&1.XML简介 XML的背景 1) XML代表可扩展的标记语言(eXtensible Markup Language); 2) XML由W3C联盟发展维护; 3) XML是一种元语言,可以用来定义其它标签语言; 4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的前身GML由IBM在1960年发明,用于描述设备无关的文本 8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。 9) W3C组织在1998年2月10日发布XML1.0版,第二个版本发布于2000年10月9日。 10)XML是分层的树形结构的自解释的一种可扩展的标记语言。 XML和HTML的关系 1) 事实上,HTML和XML不能够进行比较的。因为XML是一种元语言,而HTML是一种定义好的标记语言。XML是描述数据的语言,HTML是描述数据 外观的语言。 2) HTML有一套确定的标记。在W3C标准规范中定义了HTML标记的含义并由部分浏览器实现了。 3) HTML标记非常适合描述人类易读的可视化文本。 4) HTML定义了许多表现指令用以优化在浏览器中的显示。 5) 在HTML标记中,数据固有的结构丢失了。 6) HTML没有维持数据类型信息的完整性、约束、或实体间的其它关系,而XML提供了这些特征。 对
XML文件
的要求,格式良好(符合XML的语法要求),有效的XML; XML的用途,数据传输的中间件,做为通用文档格式 1,数据交换 2,web服务 3,内容管理 4,web集成 5,充当配置文件 格式良好的
XML文件
的规范 XML文档是一种严格规范的语言,必须按照规范来写。 XML文档的框架结构 XML文档=序言+
元素
+杂项(可选) 1)序言 序言=(XML声明)+(杂项)+(文档类型声明) XML声明 如: 文档类型声明 规定
元素
的结构和属性列表的取值 如: 2)
元素
空
元素
非空
元素
内容 内容=(子
元素
|字符数据|字符数据段|引用|处理指令|注释)* 字符数据 字符数据中,不能含有&,,',",需要采用实体引用的方式 字符数据段 引用 3)杂项 处理指令 XML为其它应用程序准备的接口。 注释 空白符指空格、回车等
XML文件
事例 ...
XML文件
的写法 xml文档是有标签和标签中的内容组成的,标签和标签中的内容合成为
元素
非空
元素
(起始标签) aaa(内容) (结束标签) 空
元素
格式良好的XML文档的规范 1)文档声明位于文件的开头 2)文档中只能定义一个唯一的根
元素
(根
元素
是在文档声明之后的最外层的
元素
) 3)标签必须闭合,且不能交叉,有
元素
的起始标签,就必须有其结束标签(空
元素
除外) 4)层层嵌套,每一对标签总是出于另一对标签的内或和其处于同一层,不能交叉(根
元素
chuw) 5)大小写敏感,起始标签和结束标签的名字要一致 6)属性值必须用引号引起来 7)注意特殊字符,使用时需要使用转义字符。 注意: 1.第一行一定要写 2.
xml文件
是由
元素
和
元素
的内容以及属性组成的,一个
xml文件
中只能有一个根
元素
,标签和标签的内容加在一起叫作一个
元素
。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 "" , " 代表双引号。 & 代表 "&" , ' 代表单引号 字符数据段,不解析 ....的部分不必使用转义,其中内容会直接输出。 引用 实体声明 使用实体,引用 &引用名 事例: (
XML文件
的声明) (注释) (根
元素
) (子
元素
) b) then {return 1} else{return 0} }]]> (空
元素
) 张三 XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的
XML文件
才能称之为有效的
XML文件
。 DTD(文档类型定义) !DOCTYPE 定义DTD文件名 !ELEMENT 定义
元素
中可用的数据类型 #PCDATA 可解析字符串。 1)DTD的调用 方式一:调用内部文档类型定义。 注意点: (1) studinfo与(#PCDATA)有空格 (2) 文档类型名与根
元素
名必须一致 方式二:调用外部文档类型定义,需要写一个DTD文档 注意点: (1)standalone="no" (2)注意dtd文件的路径 2)DTD的结构 1.
元素
类型声明 指明
元素
的名称和
元素
含有的内容。
元素
类型声明=
元素
内容说明='EMPTY'|'ANY'|混合内容|
元素
内容|'#PCDATA' #PCDATA: 只有可析的字符数据才能作为
元素
的内容
元素
内容:
元素
内部只能出现指定的子
元素
事例:带有子
元素
的
元素
结构定义 "?" 表示子
元素
只可以出现一个,也可以不出现 (0到1) "+" 表示子
元素
必须出现,可以出现多个 (1到多) "*" 表示子
元素
可以出现多个,也可以不出现,(0到多) Enumerated:枚举类型,由“|”分隔的可能的子
元素
,在可能出现的子
元素
中只能有一个出现。 EMPTY:
元素
内容为空时才写(空
元素
,其中不能有内容) (无子
元素
) ANY:
元素
内容可以任意,也可以为空 混合内容:标记文本和可析字符串 2.
元素
属性表声明 属性:由“=”分隔的成对的属性名和属性值构成,只能出现在
元素
标记的内部。 结束标记不能带属性,一个
元素
可以具有多个属性 语法: 属性取值类型 1、CDATA:可析字符(文本) 2、Enumerated:枚举类型,由“|”分隔的可能的属性值列表 属性默认值: 注意 1、#REQUIRED:必须提供属性值 2、IMPLIED:可提供也可不提供 3、FIXED:不能修改 事例: zhangshan 实体声明 实体:存储了任意符合规则的xml文档单元片断。 1、内部通用实体 定义格式 引用格式 &实体名; 2、外部通用实体 定义格式 引用格式 &实体名; 事例: zhangshan 20 beijing ha
id
ian &schoolinfo; 记号声明 用记号标识非xml格式的数据 定义格式 3)DTD的缺陷,DTD中的类型比较少,有一些约束在DTD中是表达不了的,DTD不支持XML语法. &3.NameSpace(命名空间) namespace是为了解决XML文档中的命名冲突问题的。 DTD不支持命名空间,解析器无法测试命名空间。 1、作用: 解决XML文档中命名冲突的问题,即将 XML文档与引用URI标识的名域相结合,来 限定其中的
元素
和属性名。 示例: t1 man s1 girl 2、名域的声明 (1)直接定义 xmlns:名域前缀="名域的URI"(唯一性) 类比:名字与身份证 名域的使用,名域前缀:需要限定的
元素
名 示例: zhangshan man stu1 girl (2)缺省定义 xmlns=名域的URI zhangshan man stu1 girl 3、名域的使用 (1)用名域限定
元素
zhangshan man stu1 girl (2)用名域限定属性 zhangshan man caoyang,no1 stu1 girl ha
id
ian,no2 4、名域的作用范围 名域能够把声明它的
元素
和该
元素
的所有子
元素
关联起来,除非它们被其他的名域声明所覆盖。 &XML Schema Schema 也是XML文档,用于定义XML文档的结构。 目标名域 使用目标名域中的限制,要只用这个schema文件结构生成XML文档中必须使用者个默认名域。 schema文件的扩展名为 .xsd schema文档的语法和XML的语法相同。 schema文档也有根
元素
,根
元素
为schema。 参照类型约束,来约束
元素
的内容
元素
的默认和固定值 1) 简单
元素
可以有一个默认或固定值: 2) 当没有指定值时,一个默认的值自动分配给
元素
。在这个例子中,默 认值为red: 3) 一个固定值也是自动分配给
元素
的,你不能指定 其它值。在这个例子中,默认值为red: ref关键字 参照....定义。 属性结构的定义,属性也可以使用固定值或者是默认值 schema文件中也可以定义
元素
结构和类型,schema文件中对
元素
内容加以限制 schema中可以定义
元素
内容类型 1. 简单类型 2. 自定义类型,复杂类型,子
元素
组合 简单类型,基本类型加限制 simpleType:简单类型定义 restriction:基本类型引用 enumeration:使用枚举类型,从给定值中选择且必选其一。 minInclusive:简单类型加最小值约束,且包含设定的最小值 maxExclusive:简单类型加最大值约束,且包含设定的最大值 以下是其使用的事例 . 简单类型加限制 只能使用非负整数3到7包含3和7。 . 复杂类型定义 复杂类型定义事例: 整体schema文档事例 演示simpleType用法,即自定义类型 学生(
id
= "1000") 姓名 年龄(必须是int,并且只能取一定范围的值) 父亲(父母二者选一) 母亲 专业(枚举类型) 知识点: simpleType restriction enumeration minInclusive maxExclusive 针对以上schema文件的有效的
XML文件
事例 shang zhang 30 lishi computer XML文档的解析 SAX :事件机制驱动。在遇到相应的节点时,会发出一个事件,当解析器发现
元素
开始、
元素
结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。 SAX的优缺点: 优点: 不用事先调入整个文档,占用资源少; SAX解析器代码比DOM解析器代码小,适于Applet,下载 缺点: 不是持久的;事件过后,若没保存数据,那么数据就丢了,比较消耗时间; 只能顺序处理,不能选择读取。不支持文档的创建和修改。 无状态性;从事件中只能得到文本,但不知该文本属于哪个
元素
; 使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少 SAX处理流程 UNIX color 分析这个代码片断的 SAX 处理器一般情况下将产生以下事件: startDocument() startElement (samples) characters (white space) startElement (server) characters (UNIX) endElement (server) characters (white space) startElement (monitor) characters (color) endElement (monitor) characters (white space) endElement (samples) SAX API 允许开发人员捕捉这些事件并对它们作出反应。 SAX 处理涉及以下步骤: 创建一个事件处理程序。 创建 SAX 解析器。 向解析器分配事件处理程序。 解析文档,同时向事件处理程序发送每个事件。 要实现SAX解析XML文档的方法, XMLReader和XMLReaderFactory XMLReader read=XMLReaderFactory.createXMLReader();生成XMLReader对象, 使用XMLReader对象的方法parse(File f,ContentHandler handler),ContentHandler是一个定义好事件处理方法的接口, DTDHandler ,EntityResolver ,ErrorHandler这三个接口和 ContentHandler接口相同,但是其中定义的是其他事件处理方法,一般只是实现ContentHandler接口。 使用SAX解析XML文档,需要先有SAXParserFactory对象,他的对象是通过自身的静态方法newInstance(),然后再通过SAXParserFactory对象来创建SAXParser对象,使用SAXParser对象的 parse(File f,DefaultHandler handler),DefaultHandler是用来处理解析时发出的事件的类,就可以进行解析。DefaultHandler实现了ContentHandler,DTDHandler ,EntityResolver ,ErrorHandler,四个接口,但是只给出了空实现,便于使用者覆盖相应的方法。 SAX解析的其他方法请参阅
JAVA
API文档。(
java
x.xml.parsers ,org.xml.sax ,org.xml.sax.helpers) DOM (文档对象模型)Document Object Modle 为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来
操作
这个树结构。 优点:整个文档树在内存中,便于
操作
;支持
删除
、修改、重新排列等多种功能; 缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间; 使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU) DOM解析是将整个的XML文档
元素
结构读入内存,由根
元素
向下形成子
元素
分级树状关系。 DOM的解析 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(name); 以上三行代码,使用来生成Document对象的,Document对象就代表了读入内存后结构化的XML文档。 使用Document对象的getDocumentElement()方法获得子节点,可以通过不断的迭代便利所有节点,这些节点就代表了
元素
,从根
元素
开始一直到最内层的子
元素
。 getElementsByTagName(String tagname) 这个方法可以通过
元素
的名来或得该
元素
内层
元素
,也就是或得了这个节点的所有子节点(NodeList)NodeList的方法getLength()(列表中的节点数),通过循环使用 Node item(int index) (返回集合中的第 index 个项)方法,来获得每个子节点。 DOM解析的其他方法请参阅
JAVA
API文档。(org.w3c.dom) 选择 DOM 还是选择 SAX,这取决于下面几个因素: 应用程序的目的: 数据容量: 数据多少部分会被使用 对速度的需要: DOM4j,JDOM 开源的XML文档解析器,实现DOM,SAX接口,保留了DOM和SAX的基本语法,对解析性能进行了优化。 JDOM 需要jdom.jar和 JDOM的背后使用的是使用SAX对文件进行扫描的。 SAXBuilder builder=new SAXBuilder();//创建解析器 使用SAX扫描之后的结果保存成DOM结构的树。JDOM对解析过程作了简化。 JDOM中的方法便的更加易用。例如:getRootElement(),getChildren("...")方法的返回值是
java
.util.List类型,getText()方法直接可以返回
元素
中的内容,他的返回值类型是String类型。 JDOM也可以对XML文档进行写
操作
。 XMLOutputter类的对象可以向文件中写信息,setEncoding("")设置内码,setNewLine(true),设置换行。output(Document docFileWriter write)方法可以向文件中写入。
java
操作
xml 修改
xml文件
_
java
操作
XML文件
XML文件
可以用来作为一种小型数据库存在,但更多时候在项目中都是用来当成配置文件用的,也就避免不了对
XML文件
的增上改查
操作
。在
java
中,解析
XML文件
的方式大致分为两种:DOM解析,SAX解析先来说DOM解析方式:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(
操作
)到xml文档的内容。...
XML必知必会:
Java
、C#、Python多种语言解析XML文档
、XPath节点和XPath语法 第7章 解析XML文档 解析XML文档概述、DOM解析XML、SAX解析XML 第8章
Java
语言解析XML DOM4J概述、示例:遍历节点、示例:插入节点、示例:
删除
节点 第9章 Python语言解析XML ElementTree模块...
java
读取xml_
Java
读取
XML文件
1.XMLXML 指可扩展标记语言(EXtensibleMarkupLanguage),XML 被设计用来传输和存储数据。XML 仅仅是纯文本,XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。通过 XML 可以发明自己的标签,XML 没有预定义的标签。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享...
java
jdom
删除
节点_
Java
如何从JDOM中的XML文档中
删除
元素
?
本示例说明如何从XML文档中
删除
元素
。在下面的代码片段中,我们首先加载XML文档并显示其原始内容。之后,我们找到
元素
,并从中
删除
该
元素
。为了获得第一个孩子,我们正在使用getChild()根Element对象中的方法。要
删除
元素
,我们使用removeChild()方法。packageorg.nhooo.example.jdom;importorg.jdom2.Document;importo...
Java
50,527
社区成员
85,606
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章