dom4j 创建一个带命名空间的pom.xml 文件
http://xml.apache.org/xalan-j/index.html
需要的jar包
<dependencies>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.2</version>
</dependency>
</dependencies>
示例
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map; import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.apache.xml.serializer.OutputPropertiesFactory;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.QName;
import org.dom4j.io.DOMWriter; public class Dom4jDemo { public static void main(String[] args) throws IOException, TransformerFactoryConfigurationError, DocumentException, TransformerException { DocumentFactory documentFactory = DocumentFactory.getInstance(); Document document = documentFactory.createDocument();
Element projectElement = DocumentHelper.createElement("project");
Namespace noprefix = Namespace.get("http://maven.apache.org/POM/4.0.0");
Namespace xsi = Namespace.get("xsi", "http://www.w3.org/2001/XMLSchema-instance");
projectElement.add(noprefix);
projectElement.add(xsi);
projectElement.addAttribute(QName.get("schemaLocation", xsi), "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"); Element modelVersionElement = projectElement.addElement("modelVersion",noprefix.getURI());
modelVersionElement.addText("4.0.0"); Element groupIdElement = projectElement.addElement("groupId",noprefix.getURI());
groupIdElement.addText("cn.zno"); Element artifactIdElement = projectElement.addElement("artifactId",noprefix.getURI());
artifactIdElement.addText("z-test"); Element versionElement = projectElement.addElement("version", noprefix.getURI());
versionElement.addText("0.0.1-SNAPSHOT"); document.setRootElement(projectElement); StringWriter stringWriter = new StringWriter();
document.write(stringWriter); String onelineContent = stringWriter.toString().replaceAll(">\\s*<", "><"); String xalanVersion = org.apache.xalan.Version.getVersion(); Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputPropertiesFactory.S_KEY_INDENT_AMOUNT, "4");
DOMSource domSource = new DOMSource(new DOMWriter().write(DocumentHelper.parseText(onelineContent)));
StreamResult streamResult = new StreamResult(new StringWriter());
transformer.transform(domSource, streamResult);
String transformedXmlContent = streamResult.getWriter().toString(); System.out.println(transformedXmlContent);
}
}
运行结果
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.zno</groupId>
<artifactId>z-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
PS:
1) org.dom4j.DocumentFactory 新建 document , javax.xml.parsers.DocumentBuilderFactory 也是新建 document
2)org.dom4j.DocumentHelper 是 易使用版 ,包含创建新的和创建已存在的
3)org.dom4j.io.SAXReader 可方便读取已有document
4) javax.xml.transform.Transformer 部分是java 的,正宗地址 http://xalan.apache.org/index.html
dom4j 创建一个带命名空间的pom.xml 文件的更多相关文章
- eclipse创建的maven项目,pom.xml文件报错解决方法
[错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...
- Dom4j的一个小例子,用于解析xml文件的元素获取方式(转)
import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationExcepti ...
- Dom4j的一个小例子,用于解析xml文件的元素获取方式
import java.io.File; import java.io.IOException; import javax.xml.parsers.ParserConfigurationExcepti ...
- STS创建spring boot项目,pom.xml文件第一行报错
亲测能用url地址:https://blog.csdn.net/jrx1995/article/details/100008552
- 编写Java程序,使用 dom4j 创建一个 XML 文档,文档名为“city.xml”。注意该文档的格式和数据
查看本章节 查看作业目录 需求说明: 使用 dom4j 创建一个 XML 文档,文档名为"city.xml".该文档的格式和数据如图所示 实现思路: 创建Java项目,添加dom4 ...
- 创建一个带模版的用户控件 V.3
再重构此篇<创建一个带模版的用户控件 V.2>http://www.cnblogs.com/insus/p/4164149.html 让其它动态实现header,Item和Footer. ...
- 创建一个带模版的用户控件 V.2
前面有做练习<创建一个带模版的用户控件>http://www.cnblogs.com/insus/p/4161544.html .过于简化.通常使用数据控件Repeater会有网页写好He ...
- 「六」创建一个带 weblogic 服务的基础镜像
Weblogic Weblogic 简单介绍以及其在 Docker 环境下的特殊应用 WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE ...
- (六)Maven之pom.xml文件简单说明
通过前面几部分知识,我们对maven已经有了初步的印象,就像Make的Makefile.Ant的build.xml一样,Maven项目的核心是pom.xml.POM(Project Object Mo ...
随机推荐
- 第一课了解SQL
1.1 数据库基础 其实一直在使用这数据库,当你在邮箱中查询名字时,当在网站上进行搜索,在自动取款机上使用ATM卡,这些操作都是在使用数据库 1.1.1 数据库 数据库:保存有组织的数据的容器(通 ...
- 解决idea下载依赖包慢到出奇
右键项目选中maven选项,然后选择“open settings.xml”或者 “create settings.xml”,然后把如下代码粘贴进去就可以了.重启IDE. <?xml versio ...
- JDK1.7 ConcurrentHashMap--解决高并发下的HashMap使用问题
高并发下也可以使用HashTable .Collections.synchronizedMap因为他们是线程安全的,但是却牺牲了性能,无论是读操作.写操作都是给整个集合加锁,导致同一时间内其他操作均为 ...
- POI richText和html的转换案例
private XSSFRichTextString parseHtmlStrToRichText(String htmlStr) { Document document = parseHtmlStr ...
- ajax-json,遇到的一个问题,jquery var ,加载顺序。JS对象,json格式转换。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ide调试
F8: 程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行) F7: 程序向下执行一行.如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法) Alt + ...
- 利用iptables防火墙允许1521端口被连接
今天在虚拟机上装了ora11g , 出现2个问题 1.i386的几个RPM包缺少导致安装验证不通过 2.安装完成后,本地电脑连不上虚拟机oracle , 但是能ping通 问题2: 简单的方法就是关掉 ...
- linux 查找java程序、杀死、重启
查看java进程 ps -ef|grep java杀死进程 kill -9 4834 (进程号)启动 java -jar xxx.jar & (后台会一直运行)
- pythone函数基础(9)操作数据库连接
#操作数据库连接import pymysqlconn = pymysql.connect(host='118.24.3.40',user='jxz', password='123456',port=3 ...
- Selenium 学习汇总
Commands (命令) Action 对当前状态进行操作 失败时,停止测试 Assertion 校验是否有产生正确的值 Element Locators 指定HTML中的某元素 Patterns ...