StringBuffer sb=new StringBuffer("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
sb.append("<users>");
sb.append("<user id=\"1\">");
sb.append("<name>龙准</name>");
sb.append("<age>25</age>");
sb.append("</user>");
sb.append("<user id=\"2\">");
sb.append("<name>廖丽</name>");
sb.append("<age>21</age>");
sb.append("</user>");
sb.append("</users>");
Document doc=null;
SAXBuilder builder=new SAXBuilder();
//为文档增加dtd验证
//Builder.setFeature(“http://xml.org/sax/features/validation”;,ture);
//为文档增加schema验证
//Builder.setFeature(“http://apache.org/xml/features/validation/schema”;,true);
//导入schema文件
Builder.setPropertity(“http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation”;,schema)
try {
doc=builder.build(new StringReader(sb.toString()));
//得到根节点
Element element=doc.getRootElement();
//得到所有节点
List list=element.getChildren();
System.out.println("某班共有"+list.size()+"个学生");
for(Iterator it=list.iterator();it.hasNext();){
Element user=(Element)it.next();
String id=user.getAttributeValue("id");
String name=user.getChildText("name");
String age=user.getChildText("age");
System.out.println("学生"+id+" ");
System.out.println("姓名:"+name+" 年龄:"+age);
}
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
输出结果:
某班共有2个学生
学生1
姓名:龙准 年龄:25
学生2
姓名:廖丽 年龄:21
新增节点:
//新增节点
Element newElement=new Element("user");
newElement.setAttribute("id","3");
newElement.addContent(new Element("name").setText("嘻哈"));
newElement.addContent(new Element("age").setText("23"));
element.addContent(newElement);
//删除节点
list.remove(2); //删除第三个子元素
element.removeChildren("user"); //删除名为user的子元素
//生成xml文档
Element root=new Element("student-info");
Element stu=new Element("student");
stu.addContent(new Element("number").setText("001"));
stu.addContent(new Element("name").setText("中国"));
stu.addContent(new Element("age").setText("60"));
root.addContent(stu);
Document doc=new Document(root);
Format format=Format.getCompactFormat();
format.setEncoding("gb2312");
format.setIndent(" ");//设置xml文件的缩进为4个空格
XMLOutputter op=new XMLOutputter(format);
try {
op.output(doc, new FileOutputStream("d://student22.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//生成xml文档2
Document document=new Document();
//为xml文档添加处理指令
ProcessingInstruction pi=new ProcessingInstruction("xml-stylesheet","type='text/xsl' href=test.xsl" );
document.addContent(pi);
//添加名称空间
Namespace namespace=Namespace.getNamespace("http://www.apache.org");
Namespace namespace2=Namespace.getNamespace("other", "http://www.w3c.org");
//创建带有名称空间的根元素
Element root1=new Element("student-info",namespace);
root1.addNamespaceDeclaration(namespace2);
Element stu=new Element("student");
stu.setAttribute("id","001");
stu.addContent(new Text("第一个学生"));
stu.addContent(new Element("name").setText("ss"));
stu.addContent(new Element("age").setText("24"));
Element stu2=new Element("student");
stu2.setAttribute("id","002");
stu2.addContent(new Text("第二个学生"));
stu2.addContent(new Element("name").setText("dd"));
stu2.addContent(new Element("age").setText("22"));
root1.addContent(stu);
root1.addContent(stu2);
document.addContent(root1);
Format fm=Format.getCompactFormat();
fm.setEncoding("gb2312");
fm.setIndent(" ");
XMLOutputter xmlout=new XMLOutputter(fm);
try {
xmlout.output(document, new FileOutputStream("d://3.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
JDOM+Xpath读取,修改xml
SAXBuilder builder=new SAXBuilder();
try {
Document doc=builder.build(new File("d://user2.xml"));
XPath userPath=XPath.newInstance("//user");
List userList=userPath.selectNodes(doc);
System.out.println("某班共有"+userList.size()+"个学生");
for(Iterator it=userList.iterator();it.hasNext();){
Element userElement=(Element)it.next();
String id=userElement.getAttributeValue("id");
String name=userElement.getChildText("name");
//修改龙准的年龄
if(name.equals("龙准")){
userElement.getChild("age").setText("26");
}
String age=userElement.getChild("age").getTextTrim();
System.out.println("学生 "+id);
System.out.println("姓名:"+name+" 年龄:"+age);
}
//保存到硬盘
Format fm=Format.getCompactFormat();
fm.setEncoding("gb2312");
fm.setIndent(" ");
XMLOutputter out=new XMLOutputter(fm);
out.output(doc, new FileOutputStream("d://user2.xml"));
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
- 大小: 7.9 KB
分享到:
相关推荐
XML(eXtensible Markup Language)是一种用于标记数据的语言,它是HTML(超文本标记语言)的一个扩展,旨在传输和存储数据。本教程将深入探讨XML的基本概念、语法、解析方式以及在实际应用中的作用。 XML的设计...
4. XML解析: - DOM(Document Object Model):将整个XML文档加载到内存中,形成一棵节点树,便于遍历和操作。 - SAX(Simple API for XML):事件驱动的解析方式,逐行读取XML,只在需要时处理特定事件,适用于...
在提供的"范春梅-XML基础教程源码-code"中,你可以找到关于XML处理的实例代码,可能包括创建、解析、修改XML文档等操作。通过这些源码,你可以更好地理解XML在实际开发中的应用。 总之,XML作为一种数据交换和存储...
Java中的XML解析技术是开发过程中不可或缺的一部分,尤其是在处理结构化数据时。XML(eXtensible Markup Language)因其可扩展性和灵活性,常被用于存储和交换数据。在Java中,有四种主要的XML解析技术,它们分别是...
1. **解析器**:XML解析器读取XML文档并将其转化为内存中的对象模型,如DOM(文档对象模型)或SAX(简单API for XML)。 2. **DOM**:将整个XML文档加载到内存,形成一个树形结构,方便遍历和操作。 3. **SAX**:...
oracle过程解析XML,支持超4000,并很方便的 . 出结果 oracle过程解析XML,支持超4000 oracle过程解析XML,支持超4000
本资源"iPhone iOS XML解析源代码"提供了一个深入学习和比较XML解析技术的实例,包含两种不同的解析方法,旨在帮助开发者了解它们的性能差异。 首先,我们来探讨第一种解析方式:NSXMLParser。这是Apple提供的内置...
HTTP XML文件解析是网络通信中常见的一种技术,它结合了HTTP协议和XML(可扩展标记语言)的数据格式,广泛应用于Web服务、API交互以及数据交换等领域。本文将深入探讨在线解析HTTP XML文件的相关知识点,包括HTTP...
在实际应用中,根据需求和性能考虑,可以选择合适的XML解析库和方法。例如,如果需要频繁修改XML文档,DOM可能更适合;如果处理大型XML文件,SAX或StAX会是更好的选择。结合这些库,可以高效地进行XML的读写、查询和...
在IT行业中,网络通信是至关重要的部分,而HTTP...理解HTTP协议的工作原理,掌握WinInet的API用法,以及熟悉XML解析库的使用,对于开发涉及网络通信的C++应用程序至关重要。通过实践,你可以更好地理解和掌握这些技能。
pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器 pugixml pugixml是一个 C++ XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0...
XML 解析器原理及性能比较 XML 解析器是指将 XML 文档转换为计算机可以理解的格式的软件组件。常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和...
2. **数据解析**:HTML5页面通过JavaScript来解析XML文件,将数据加载到内存中,并显示在界面上。DOM(Document Object Model)API是用于处理XML和HTML文档的标准接口,可用于遍历和操作XML节点。 3. **用户界面**...
2. **解析XML**:获取到XML响应后,我们可以使用DOM方法如getElementsByTagName、getElementById、getAttribute等来查找和提取XML节点信息。例如,获取所有`<effect>`标签: ```javascript var effects = xmlDoc....
可以使用XML解析库,如Python的`xml.etree.ElementTree`,Java的`javax.xml.parsers.DocumentBuilderFactory`,或者JavaScript的`DOMParser`。这些库提供了解析XML文档,查找特定元素,以及提取和修改数据的功能。 ...
- XML解析器负责解析XML文档,确保其符合XML标准。 - **1.3.3 浏览器和其他工具** - 大多数现代浏览器支持XML,并能直接显示或通过样式表呈现XML文档。 - **1.3.4 处理过程总结** - XML文档的处理通常涉及创建、...
这篇文档将围绕着标题中提到的六个关键技术领域——CSS(层叠样式表)、DHTML(动态超文本标记语言)、XMLDOM(XML文档对象模型)、T-SQL(Transact-SQL)、XPath(XML路径语言)以及正则表达式,展开详细的阐述。...
7. **解析与验证**:XML文档可以被解析器读取,解析器可以是DOM(文档对象模型)、SAX(简单API for XML)或StAX(流式API for XML)。验证器则检查文档是否符合其DTD或Schema。 8. **XPath与XSLT**:XPath是查询...
超全面javaweb第4天-_20_xml的解析的简介