使用DOM方式去解析word内容
@Override public String exportPath(ZjclSj sj) { String filepath = "/temp/" + sj.getSjmc() + ".xml"; //调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { //调用工厂对象的 newDocumentBuilder方法得到 DOM 解析器对象 DocumentBuilder builder = factory.newDocumentBuilder(); //1、通过文件的方式获取Document对象 String path = ResourceManager.getRealPath() + "/temp/sjmb.xml"; Document document = builder.parse(new File(path)); //根据标签名称获取该名称的所有节点对象 // NodeList nodelist = document.getElementsByTagName("wx:sect"); // //遍历 // for (int i = 0; i < nodelist.getLength(); i++) { // //得到具体的某个节点对象 // Node node = nodelist.item(i); // System.out.println(node.getNodeName()); // listNodes(node); // } //Node sectNode = document.getElementById("sectId"); Node sectNode = document.getElementsByTagName("wx:sect").item(0); System.out.println("----------"+sectNode.getNodeName()); // <w:p> // <w:r> // <w:t>Hello, World.</w:t> // </w:r> // </w:p> //创建元素节点 Element wp = document.createElement("w:p"); Node wr = document.createElement("w:r"); Node wt = document.createElement("w:t"); wt.appendChild(document.createTextNode("Hello, World.")); wr.appendChild(wt); wp.appendChild(wr); sectNode.appendChild(wp); String path2 = ResourceManager.getRealPath() + "/temp/" + sj.getSjmc() + ".doc";; System.out.println("path2:"+path2); saveXml(path2, document); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return filepath; } public static void saveXml(String fileName, Document doc) {// 将Document输出到文件 TransformerFactory transFactory = TransformerFactory.newInstance(); try { Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty("indent", "yes"); DOMSource source = new DOMSource(); source.setNode(doc); StreamResult result = new StreamResult(); result.setOutputStream(new FileOutputStream(fileName)); transformer.transform(source, result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } /** * 遍历根据节点对象下面的所有的节点对象 * @param node */ public void listNodes(Node node) { // 节点是什么类型的节点 if (node.getNodeType() == Node.ELEMENT_NODE) {// 判断是否是元素节点 Element element = (Element) node; //判断此元素节点是否有属性 if(element.hasAttributes()){ //获取属性节点的集合 NamedNodeMap namenm = element.getAttributes();//Node //遍历属性节点的集合 for(int k=0;k<namenm.getLength();k++){ //获取具体的某个属性节点 Attr attr = (Attr) namenm.item(k); System.out.println("attr:"+attr.getNodeName()+" value:" +attr.getNodeValue()+" type:"+attr.getNodeType()); } } //获取元素节点的所有孩子节点 NodeList listnode = element.getChildNodes(); //遍历 for (int j = 0; j < listnode.getLength(); j++) { //得到某个具体的节点对象 Node nd = listnode.item(j); System.out.println("nd:" + nd.getNodeName() + " value:" + nd.getNodeValue() + " type:" + nd.getNodeType()); //重新调用遍历节点的操作的方法 listNodes(nd); } } }
--摘自 试卷考试系统、手动组卷导出
相关推荐
XML格式的Word文档解析器是一种专门用于处理基于XML结构的Microsoft Word文档的工具。这种解析器通常用于自动化处理、数据填充或批量修改Word文档中的特定内容,如书签替换、表格处理等。以下是对该解析器及其功能的...
Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...
本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言,它允许我们以结构化的方式存储数据。在生成Word文档时,我们...
资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版 内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...
1. **解析XML文件**:首先,需要读取XML文件,解析其结构和内容。 2. **转换为可渲染格式**:XML数据需要转换成像HTML或XSL-FO(Extensible Stylesheet Language Formatting Objects)这样的格式,这些格式可以直接...
在IT行业中,处理和解析Microsoft Office的Word文档是一项常见的任务,尤其在数据分析、文本挖掘以及自动化办公流程等领域。本项目专注于“Office Word文档解析”,它提供了对doc和docx两种格式的支持,允许开发者...
在这个特定的情况下,我们关注的是如何使用TinyXml来解析Word文档中的图片信息。 Word文档可以包含多种类型的图片,这些图片的数据通常以嵌入的OLE对象或链接到外部文件的形式存储在XML结构中。在Open XML标准(....
DOM4J是一个基于Java的高效XML解析库,它是对DOM和SAX API的一个简单而强大的封装。DOM4J提供了更简洁的API,使得XML的解析和操作更加容易。DOM4J已成为XML解析的一种流行选择。 ### 性能对比 不同解析方式之间的...
根据 Word 的 XML 模板生成 Word 文件 概述: 本文将详细介绍如何根据 Word 的 XML 模板生成 Word 文件,包括服务位置、参数设置、日期类型字段处理等方面的知识点。 一、服务位置 ...
在本例中,可能使用了DocX库,因为它能方便地读取和操作Open XML格式的Word文档(如111.docx)。DocX库允许开发者以编程方式访问文档的段落、表格、图片等元素,并提供了读取文本内容的API。 以下是解析Word文档...
在"poi解析导入word (简单Demo使用)"这个主题中,我们将深入探讨如何使用Apache POI库来读取、修改和创建Word文档。这个项目包含了一个POM文件(项目对象模型),一个Demo示例,以及一个docx文件,提供了完整的导入...
六、XML解析 解析XML文档有两种主要方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一棵树形结构,便于随机访问;SAX则采用事件驱动模型,逐行读取,适用于大...
通过合理设计XML文档结构、有效利用DOM4J进行解析以及借助适当的Word文档处理库(如Apache POI),开发者可以轻松实现这一转换过程。这不仅提高了信息的可读性和可维护性,还为用户提供了一个更加友好和直观的文档...
在"XML应用-wb"这个文件中,很可能是包含了一份关于XML解析的Word文档,详细介绍了这些解析方式的理论知识、实践示例和源代码解释。这份文档将帮助开发者理解不同解析方法的适用场景,选择最适合项目需求的XML解析...
- 通过遍历XML流,解析Word文档的各个元素,如段落、标题、文本等。Apache POI提供了`XWPFDocument`类来处理这些元素。 4. **显示内容** - 将解析到的数据转换为适应Android UI的格式,如TextView、EditText等。 ...
1:使用Tinyxml库解析xml文件 2:采用COM技术调用OLE自动化对象,实现Word文档在vs++(2003)平台中的自动生成(本代码主要讲xml数据导入到word表格),涉及到光标跟随技术 3:环境 vs2003 word2013 如果不会使用Tiny...
java实现word文档到xml文档转换浅析
这个过程涉及到文件操作和XML解析技术。 **XML文件分离** XML文件分离通常是指从一个包含多个XML文档的大文件中,通过编程方式将每个XML文档提取出来,保存为单独的文件。这一步骤可能涉及以下步骤: 1. **读取大...
已经在csdn上传原文 ...百度搜索 "java解析mathtype" " OMath解析...经过分析xml,发现需要解析公式文本的本质是解析二进制文件 xxx.ole 所以以上程序就是负责解析这个的 命令: mteg - f xxx.ole 直接解析ole文件输出控制台