import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Dom4jTest1 {
/**
* (一)创建Document的基本操作
*/
public void BaseOperation(){
//创建一个document
Document document=DocumentHelper.createDocument();
//创建根结点
Element root=document.addElement("root");
//为根结点添加一个book节点
Element book1=root.addElement("book");
//为book1添加属性type
book1.addAttribute("type","science");
//为book1添加name子节点
Element name1=book1.addElement("name");
//并设置其name为"Java"
name1.setText("Java");
//为book1创建一个price节点,并设其价格为100
book1.addElement("price").setText("100");
//为根结点添加第二个book节点,并设置该book节点的type属性
Element book2=root.addElement("book").addAttribute("type","science");
//为book1添加name子节点
Element name2=book2.addElement("name");
//并设置其name为"Oracle"
name2.setText("Oracle");
//为book1创建一个price节点,并设其价格为200
book2.addElement("price").setText("200");
//输出xml
System.out.println(document.asXML());
}
/**(二)将字符串转化为Document
* @param str 输入的字符串
* @return 生成的document
* @throws DocumentException
*/
public Document parserStrtoDocument(String str) throws DocumentException
{
Document document=DocumentHelper.parseText(str);
return document;
}
public void parserStrtoDocumentTest() throws DocumentException
{
String str="<root><book type='science'><name>Java</name><price>100</price></book></root>";
Document document = parserStrtoDocument(str);
System.out.println(document.asXML());
}
/**
* (三)取得xml的节点和属性的值
* @throws DocumentException
*/
public void getBaseInfofromDocument() throws DocumentException
{
String str="<root><book type='science'><name>Java</name><price>100</price></book></root>";
//生成一个Document
Document document = DocumentHelper.parseText(str);
//取得根结点
Element root=document.getRootElement();
//取得book节点
Element book=root.element("book");
//取得book节点的type属性的值
String type=book.attributeValue("type");
//取得Name节点
Element name=book.element("name");
//取得书名
String bookname=name.getText();
//取得书的价钱
int price=Integer.parseInt(book.element("price").getText());
//输出书目信息
System.out.println("书名:"+bookname);
System.out.println("所属类别:"+type);
System.out.println("价格:"+price);
}
/**(四)利用迭代,xpath取得xml的节点及其属性值
* @throws DocumentException
*/
public void getComplexInfofromDocument() throws DocumentException{
String str="<root><book type='science'><Name>Java</Name><price>100</price></book>"
+"<book type='science'><Name>Oracle</Name><price>120</price></book>"
+"<book type='society'><Name>History</Name><price>130</price></book>"
+"<author><name>chb</name></author></root>";
//生成一个Document
Document document = DocumentHelper.parseText(str);
//提取类型为"society"的书
//此处需要添加支持xpath的jar包,详细见备注
Element society_book=(Element)document.selectSingleNode("/root/book[@type='society']");
System.out.println(society_book.asXML());
System.out.println("");
//提取价格节点的列表
System.out.println("-----------价格列表-------------");
List price=document.selectNodes("//price");
for(int i=0;i<price.size();i++){
Element elem_price=(Element)price.get(i);
System.out.println(elem_price.getText());
}
//循环根结点下的所有节点,若当前节点为book,则输出这本书的详细信息
System.out.println("-------------书目详情------------");
System.out.println("书名\t\t类别\t\t价格");
Element root=document.getRootElement();
Iterator iterator=root.elementIterator();
while(iterator.hasNext()){
Element element=(Element)iterator.next();
if(element.getName().equals("book")){
System.out.print(element.element("Name").getText()+"\t\t");
System.out.print(element.attributeValue("type")+"\t\t");
System.out.print(element.element("price").getText()+"\n");
}
}
//查找作者姓名
Element author=(Element)document.selectSingleNode("//author");
System.out.println("");
System.out.println("作者姓名:"+author.element("name").getText());
System.out.println("");
//提取作者的所有书目名称
Iterator iterator_book=root.elementIterator("book");
while(iterator_book.hasNext()){
Element book=(Element)iterator_book.next();
System.out.println("所著书籍");
System.out.println(book.element("Name").getText());
}
//属性迭代
System.out.println("\n-------属性迭代--------");
String str1="<book type='science' name='Java' price='100'/>";
Document document1=DocumentHelper.parseText(str1);
//开始迭代
Iterator iterator_attribute=document1.getRootElement().attributeIterator();
while(iterator_attribute.hasNext()){
//提取当前属性
Attribute attribute=(Attribute)iterator_attribute.next();
System.out.println(attribute.getName()+":"+attribute.getValue());
}
}
public static void main( String[] args )
{
try
{
Dom4jTest1 test = new Dom4jTest1();
// test.BaseOperation();
// test.parserStrtoDocumentTest();
// test.getBaseInfofromDocument();
test.getComplexInfofromDocument();
}
catch( Exception e )
{
e.printStackTrace();
}
}
}
分享到:
- 2008-03-03 11:38
- 浏览 844
- 评论(0)
- 论坛回复 / 浏览 (0 / 1688)
- 查看更多
相关推荐
描述中提供的链接指向了一个CSDN博客文章,其中可能详细介绍了实现过程和代码示例。通常,这样的效果还会包含事件监听器,以便用户可以通过点击来选择日期,或者通过左右按钮切换月份。例如: ```javascript ...
演示实例:http://fancybox.net/example 4.jQueryUI Dialog 官方网站:http://jqueryui.com/demos/dialog/ 下载地址:http://jqueryui.com/demos/dialog/ 演示实例:http://jqueryui.com/demos/dialog/ 5.DOM ...
4. **函数式编程**:JavaScript支持函数式编程风格,如高阶函数、函数作为一等公民(函数可以作为值传递、作为返回值、作为参数等)以及函数组合。 5. **事件处理**:JavaScript通过事件监听和事件处理函数,使得...
本文将深入探讨如何使用纯JavaScript(jQuery)和CSS实现这一目标,主要参考自CSDN博主wlmnzf的文章详情页:http://blog.csdn.net/wlmnzf/article/details/47252755。 首先,我们要理解“web打印”是指通过浏览器...
- **博客**: [http://blog.mootools.net/](http://blog.mootools.net/) - **文档**: [http://docs.mootools.net/](http://docs.mootools.net/) - **示例**: [http://demos.mootools.net/]...
Dom4j | 1.6.1 | [http://www.dom4j.org](http://www.dom4j.org) Ehcache | 2.6.11| [http://www.ehcache.org/](http://www.ehcache.org/) Logback | 1.2.3 | [https://logback.qos.ch](https://logback.qos.ch) ...
自动计算图像尺寸 ## image size使用说明 ### 背景 页面中图片资源经常引用过大,造成页面性能浪费,基于此开发了此chrome插件,用于对页面的图片进行检查,即图片...* 以及在页面中的具体dom对象 支持语言:中文 (简体)
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207) at org.dom4j.tree.AbstractNode.selectSingleNode(AbstractNode....
jQuery的选择机制构建于Css的选择器,它提供了快速查询DOM文档中元素的能力,而且大大强化了JavaScript中获取页面元素的方式。
在.NET开发领域,GridView控件是ASP.NET Web Forms中常用的一种数据展示组件,它能够方便地将数据库中的数据以表格的形式展示在网页上,并提供多种交互功能。在本主题中,我们聚焦于“GridView右键菜单”,这是一个...
在Java开发中,dom4j和jaxen是两个常用的库,用于解析和操作XML文档。 **dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的...
4. **数据库操作**:由于提到有"mysql生成语句",项目很可能使用MySQL作为数据库,涉及SQL查询、CRUD操作(创建、读取、更新、删除)以及连接池管理。 5. **Ajax技术**:为了实现下拉框的动态加载,项目可能会用到...
QT使用SAX读取xml高效-快速.rar SAX(Simple API for XML) 如果你只想读取并显示整个XML文档,那么SAX是很好的选择,...博文链接:https://txwtech.blog.csdn.net/article/details/126324844?spm=1001.2014.3001.5502
DOM4J和Jaxen是两个在Java编程中用于XML处理的重要库,它们在解析、操作和查询XML文档方面发挥着关键作用。 DOM4J是一个非常灵活且功能强大的开源XML库,它为Java开发者提供了丰富的API来处理XML文档。DOM4J支持...
dom4j-1.6.1.jar jaxen-1.1-beta-6.jar jaxme-api-0.3.jar jsr173_1.0_api.jar msv-20030807.jar pull-parser-2.1.10.jar relaxngDatatype-20030807.jar xml-apis-2.0.2.jar xpp3-1.1.3.3.jar xsdlib-20030807.jar ...
http://download.csdn.net/detail/jincheng52rmb/5349256 http://download.csdn.net/detail/jincheng52rmb/5349247 http://download.csdn.net/detail/jincheng52rmb/5349230 典型模型与项目实战大全>> 出版社: 清华...
13. JDOM和dom4j:这两个组件都是用于处理XML文档的Java库,JDOM的官网是http://www.jdom.org,而dom4j的项目页面在http://sourceforge.net/projects/dom4j/。 以上是Java组件的一些基本介绍和下载地址,这些组件在...
Dom4j使用简介,日志 开发java必看,初级高级开发必看
【tnr34:paheal.net上的子域解析器】是一个基于JavaScript的应用程序,用于浏览和探索Rule34-Rule34网站上的内容。Rule34是一个网络文化概念,指的是互联网上几乎任何事物都有相应的成人主题创作。而paheal.net是这...
"Dom4j练习.rar" 这个标题表明了这是一个关于Dom4j的实践教程或示例代码的压缩包。Dom4j是一个非常流行的Java库,专门用于处理XML文档,它提供了灵活且高效的方式来操作XML,包括读取、写入、修改以及查询XML内容。 ...