<?xml version="1.0" encoding="UTF-8"?>
<generator>
<table name="login" operation="1">
<column name="username" handle="0">aaa </column>
<column name="password" handle="0">123 </column>
</table>
<table name="login" operation="2">
<column name="id" handle="1">1 </column>
<column name="username" handle="0">bbb </column>
<column name="password" handle="0">444 </column>
</table>
<table name="login" operation="3">
<column name="id" handle="1">4 </column>
</table>
</generator>
规则: <table>operation 1表insert,2表update,3表delete.
<column>handle 1表作为where条件,0表作为操作字段。
要求:按照规则生成三条SQL语句!(即做一个方法解析xml文件生成一个含有三条SQL语句的字符串)
/**
*解析XML文件生成一个含有可执行SQL语句的字符串
*@paramxmlFileName
*@returnSQL
*/
public String parseXmltoSQL(String xmlFileName) {
StringBuffer sbsql = new StringBuffer();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(new File(xmlFileName));
Element element = document.getRootElement();
Iterator it = element.elementIterator("table");
while (it.hasNext()) {
element = (Element) it.next();
//获得对表的操作
String oper = element.attributeValue("operation");
//获得表名
String tableName = element.attributeValue("name");
if ("1".equals(oper)) {
sbsql.append("insert into ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
String columnName2 = null;
String columnValue2 = null;
if (it2.hasNext()) {
element = (Element) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
if (it2.hasNext()) {
element = (Element) it2.next();
columnName2 = element.attributeValue("name");
columnValue2 = element.getText();
}
sbsql.append("("+columnName1+","+columnName2+")"+" values('"+columnValue1+"','"+columnValue2+"')\n");
} elseif ("2".equals(oper)) {
sbsql.append("update ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
String columnName2 = null;
String columnValue2 = null;
String columnName3 = null;
String columnValue3 = null;
if (it2.hasNext()) {
element = (Element) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
if (it2.hasNext()) {
element = (Element) it2.next();
columnName2 = element.attributeValue("name");
columnValue2 = element.getText();
}
if (it2.hasNext()) {
element = (Element) it2.next();
columnName3 = element.attributeValue("name");
columnValue3 = element.getText();
}
sbsql.append(" set "+columnName2+"='"+columnValue2+"',"+columnName3+"='"+columnValue3+"' where "+columnName1+"="+columnValue1+"\n");
}elseif ("3".equals(oper)) {
sbsql.append("delete from ").append(tableName);
Iterator it2 = element.elementIterator("column");
String columnName1 = null;
String columnValue1 = null;
if (it2.hasNext()) {
element = (Element) it2.next();
columnName1 = element.attributeValue("name");
columnValue1 = element.getText();
}
sbsql.append(" where "+columnName1+"="+columnValue1);
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sbsql.toString();
}
分享到:
相关推荐
在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...
**DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...
XML 解析器是指将 XML 文档转换为计算机可以理解的格式的软件组件。常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. ...
本项目就是关于如何使用DOM4j解析XML文件,并利用Apache POI将其转换为标准的XLS(Excel)文件。 首先,DOM4j是Java中一个灵活且功能强大的XML处理库,它提供了完整的API来读取、操作和写入XML文档。通过DOM4j,...
总结来说,这个压缩包提供了DOM4J解析XML文件所需的关键组件,包括DOM4J本身、XPath处理器Jaxen以及XML解析器Xerces。有了这些工具,开发者可以高效地处理XML文档,实现数据的读取、查询和修改,为Java应用程序带来...
在本文中,我们将深入探讨DOM4J 1.6.1版本的核心特性、使用方法以及如何在实际项目中应用这个库来解析XML文件。 首先,DOM4J采用了Document Object Model (DOM)接口,但它通过提供更直观的Java API,克服了DOM的...
标题中的“摇奖项目(dom4j解析xml随机抽取个人信息)”揭示了这是一个基于Java Web的摇奖系统,它利用DOM4J库来解析XML文件,从中随机选取用户信息进行抽奖。DOM4J是一个非常流行的Java XML API,它提供了丰富的...
DOM4J提供了多种方式来解析XML文档,包括使用SAXReader或DOMReader。以下是一个使用SAXReader解析XML的示例: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io....
本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便自定义和配置Struts2框架。 Dom4j是一个灵活且功能丰富的Java库,专门用于处理XML文档。它提供了全面的API,可以方便地读取、写入、修改和...
1. **解析XML**:DOM4J提供了两种主要的解析方式,SAX(Simple API for XML)和DOM。SAX解析器是基于事件的,适用于大型XML文件,因为它只需要较少的内存。DOM解析器则会将整个XML文档加载到内存中,适合小到中等...
### 使用dom4j操作XML详解 #### 一、DOM4j简介与配置 **DOM4j** 是一款专为Java平台设计的开源XML解析处理工具。它的设计充分考虑了性能和易用性,同时提供了对DOM、SAX及JAXP等标准的支持,因此非常适合进行复杂...
总结起来,`dom4j`是解析XML文件的强大工具,而`ActionWrapper`、`PackageWrapper`和`ResultWrapper`则是对`struts.xml`配置信息的抽象,它们有助于简化和优化Struts2应用的配置管理。通过使用这些包装类,我们可以...
使用DOM4J解析XML的基本步骤如下: 1. **创建SAXReader对象**:首先创建一个`SAXReader`实例。 ```java SAXReader reader = new SAXReader(); ``` 2. **构建Document对象**:使用`SAXReader`解析XML文件并...
`SAXReader`用于解析XML,而`XMLWriter`则用于将DOM4J对象写入XML文件。 **读取XML**:使用`SAXReader`,你可以读取XML文件并将其转换为DOM4J的`Document`对象。例如: ```java SAXReader reader = new SAXReader()...
标题"dom4j-1.6.1.jar.zip"指的是一个包含dom4j库的特定版本,即1.6.1版本的归档文件,该文件被压缩为ZIP格式。DOM4J是一个Java库,主要用于处理XML文档,提供了丰富的API来操作XML内容。 描述...
4. **解析XML**:一旦XML文档加载成功,可以使用解析器的方法如`GetFirstChild`, `GetNextSibling`, `GetName`, `GetValue`等来遍历和提取XML节点信息。 5. **处理XML数据**:根据业务需求,将解析出的数据存储到...
XML(eXtensible Markup Language)作为一种结构化数据格式,在网络应用、配置文件、数据交换等方面广泛应用,DOM4J作为其解析工具,为开发者提供了便利。 DOM4J的主要特点包括: 1. 易于使用:DOM4J的API设计直观...
在使用DOM解析XML后,我们可能需要将解析到的数据绑定到UI组件上。例如,假设我们在XML中解析出一个字符串列表,可以这样绑定到ListView: ```java // 假设listItems是解析出来的列表 @BindListView(R.id.your_list...
1. 解析XML:DOM4J通过`DocumentBuilder`类解析XML文件,生成`Document`对象,可以使用`read(File file)`或`read(URL url)`方法实现。例如: ```java Document document = DocumentHelper.parseText("<root><element...