java解析odt_java - 使用Java从odt文件读取XForm - 堆栈内存溢出
我设法通过jdom(odfdom-java)做到了这一点,毕竟一点都没有使用过。 绑定的xml本身存在于表示odt的xml中。 您只需要知道表单的ID或标签的名称,即可获得正确的节点。 之后,将构造一个字符串,其中包含带有表单数据的xml。 我的代码如下:
import org.apache.xerces.dom.DeepNodeListImpl;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class TestXFormData {
private static StringBuilder nodeContent;
public static void main(String[] args) throws Exception {
//Unzip the openOffice Document
ZipFile zipFile = new ZipFile("C://myFile.odt");
Enumeration entries = zipFile.entries();
ZipEntry entry;
while(entries.hasMoreElements()) {
entry = (ZipEntry) entries.nextElement();
if (entry.getName().equals("content.xml")) {
// construct document
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder docBuilder = domFactory.newDocumentBuilder();
Document doc = docBuilder.parse(zipFile.getInputStream(entry));
// print the document
printDocument(doc);
// get the node
NodeList list = doc.getElementsByTagName("myTagName");
Node node = ((DeepNodeListImpl) list).item(0);
nodeContent = new StringBuilder();
// print the xml with the form data
prettyPrint(node);
System.out.println(nodeContent.toString());
}
}
}
private static void prettyPrint(Node node) {
if (node.getNodeType() == Node.TEXT_NODE) {
nodeContent.append(node.getNodeValue());
} else if (node.getNodeType() == Node.ELEMENT_NODE) {
nodeContent.append("");
NodeList kids = node.getChildNodes();
for (int i = 0; i < kids.getLength(); i++) {
prettyPrint(kids.item(i));
}
nodeContent.append("" + node.getNodeName() + ">");
}
}
private static void printDocument(Document doc) throws IOException {
OutputFormat format = new OutputFormat(doc);
format.setIndenting(true);
XMLSerializer serializer = new XMLSerializer(System.out, format);
serializer.serialize(doc);
}
}
java解析odt_java - 使用Java从odt文件读取XForm - 堆栈内存溢出相关推荐
- java创建一个大文件,java - 用Java创建包含大文件的目录 - 堆栈内存溢出
他们谈论将zip文件视为文件系统,并通过这种方式提供了递归压缩文件和文件夹的密钥,如您在链接中提到的示例中所看到的,将被视为文件系统,可以使用java.nio进行访问(甚至我都不知道!). 此外,您可 ...
- java远程计算机终止,java - javax.net.ssl.SSLHandshakeException:远程主机终止了握手 - 堆栈内存溢出...
我已经使用以下命令在Java信任库(cacerts)中安装了证书: keytool-导入-文件" C:\\ Users \\ kdursoji \\ Downloads \\ Zscaler ...
- Tiled有java版本吗_java - TMX Tiled Andengine Android-致命意外- - 堆栈内存溢出
刚开始使用tmx平铺的地图文件作为2d平台游戏的地图. 这是我到目前为止的代码. private void loadLevel() { // TODO Auto-generated method st ...
- java 获取permgen_java - Java:如何检查当前的Perm / PermGen大小? - 堆栈内存溢出
您可以在这里使用jmap ,它是JVM堆转储工具. 例如: jmap -heap 5900 它将打印: Heap Configuration: MinHeapFreeRatio = 40 MaxHea ...
- java poi 段落行间距_java - Apache poi XWPF Paragraph行间距 - 堆栈内存溢出
我正在尝试使用Java / Coldfusion中的Apache Poi构建一个word文档. 到目前为止,它让我做了很多我想要的格式,除了段落的行间距. 有谁知道如何将段落设置为单行间隔? 它不断构 ...
- java构建继承树_java - 使用继承构建通用树 - 堆栈内存溢出
我正在构建一个通用的Tree类,它支持子树的继承. 但我遇到了一些问题. 请你帮帮我吗? 描述 让我们定义Tree类和BlueTree类,其中BlueTree extends Tree . 让我们定义 ...
- android 415错误,java - Android Retrofit2无法添加标头(415错误代码) - 堆栈内存溢出...
我正在尝试通过skyscanner api访问票证数据并将其传递到我的视图,但是我无法实现这一点,因为我收到415错误代码,我正在使用Retrofit2并以编程方式添加标头. 我的界面如下所示: pu ...
- java ipv6校验_java - IPv6地址验证和规范化[关闭] - 堆栈内存溢出
我只是通过adhoc方法来检查IPV4和IPV6两种寻址方案的有效性:这是我的代码......我的代码总是欢迎更正. 如果我的解决方案有误,请原谅我. #include #include #inclu ...
- java从端口接收数据_java - Java中通过串行端口接收数据的效率更高 - 堆栈内存溢出...
这是代码片段 我在这里启动一个动作监听器 try { port_seleted.addEventListener(this); } catch (TooManyListenersException e ...
最新文章
- 关于QQ群共享一百多K以上的文件上传失败的问题
- Java加密与解密笔记(三) 非对称加密
- python程序员需要掌握哪些技术-高级的python 后端程序员, 应该掌握哪些技能点 ?...
- 连年亏损的平安健康,能否成为中国版“联合健康”?
- addeventlistener不支持ajax_十万个Web前端面试题之AJAX、axios、fetch的区别
- 勤学如春起之苗,不见其增,日有所长!
- html大学生活主题班会,我的大学生活主题班会策划书
- IT 人士工作中的十不要!
- homebrew osx下面最优秀的包管理工具
- 小程序 微信小商店 获取商品列表
- SecureCRT的安装与破解(过程很详细!!!)
- 语音识别(ASR)--语音转文字
- CSDN博客索引-2
- 国产 CAE 软件研发
- 计算机网络基础知识——(一)
- 类别,非正式协议,正式协议
- 成都艾司博讯电商:拼多多店铺类目选错如何退店?
- C/C++#include简单介绍
- Loading 用户体验 - 加载时避免闪烁
- 商务汇报PPT制作的七堂课-第三课:结构搭建