`

wordXML解析

 
阅读更多

使用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格式的Word文档解析器是一种专门用于处理基于XML结构的Microsoft Word文档的工具。这种解析器通常用于自动化处理、数据填充或批量修改Word文档中的特定内容,如书签替换、表格处理等。以下是对该解析器及其功能的...

    java实现xml解析word文档代码实现

    Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...

    java XML解析方式实现自动生成word文档

    本篇文章将详细探讨如何利用Java和XML解析来自动化创建Word文档。 首先,我们需要了解XML的结构。XML(Extensible Markup Language)是一种标记语言,它允许我们以结构化的方式存储数据。在生成Word文档时,我们...

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    word to pdf word xml to pdf

    1. **解析XML文件**:首先,需要读取XML文件,解析其结构和内容。 2. **转换为可渲染格式**:XML数据需要转换成像HTML或XSL-FO(Extensible Stylesheet Language Formatting Objects)这样的格式,这些格式可以直接...

    office word文档解析

    在IT行业中,处理和解析Microsoft Office的Word文档是一项常见的任务,尤其在数据分析、文本挖掘以及自动化办公流程等领域。本项目专注于“Office Word文档解析”,它提供了对doc和docx两种格式的支持,允许开发者...

    TinyXml解析word图片

    在这个特定的情况下,我们关注的是如何使用TinyXml来解析Word文档中的图片信息。 Word文档可以包含多种类型的图片,这些图片的数据通常以嵌入的OLE对象或链接到外部文件的形式存储在XML结构中。在Open XML标准(....

    java xml文件解析

    DOM4J是一个基于Java的高效XML解析库,它是对DOM和SAX API的一个简单而强大的封装。DOM4J提供了更简洁的API,使得XML的解析和操作更加容易。DOM4J已成为XML解析的一种流行选择。 ### 性能对比 不同解析方式之间的...

    根据word的xml模板生成word文件

    根据 Word 的 XML 模板生成 Word 文件 概述: 本文将详细介绍如何根据 Word 的 XML 模板生成 Word 文件,包括服务位置、参数设置、日期类型字段处理等方面的知识点。 一、服务位置 ...

    Word文档上传并解析内容

    在本例中,可能使用了DocX库,因为它能方便地读取和操作Open XML格式的Word文档(如111.docx)。DocX库允许开发者以编程方式访问文档的段落、表格、图片等元素,并提供了读取文本内容的API。 以下是解析Word文档...

    poi解析导入word (简单Demo使用)

    在"poi解析导入word (简单Demo使用)"这个主题中,我们将深入探讨如何使用Apache POI库来读取、修改和创建Word文档。这个项目包含了一个POM文件(项目对象模型),一个Demo示例,以及一个docx文件,提供了完整的导入...

    XML实用教程word版

    六、XML解析 解析XML文档有两种主要方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一棵树形结构,便于随机访问;SAX则采用事件驱动模型,逐行读取,适用于大...

    Java实现XML文档到word文档转换

    通过合理设计XML文档结构、有效利用DOM4J进行解析以及借助适当的Word文档处理库(如Apache POI),开发者可以轻松实现这一转换过程。这不仅提高了信息的可读性和可维护性,还为用户提供了一个更加友好和直观的文档...

    android三种方式解析xml文件源代码以及说明文档word

    在"XML应用-wb"这个文件中,很可能是包含了一份关于XML解析的Word文档,详细介绍了这些解析方式的理论知识、实践示例和源代码解释。这份文档将帮助开发者理解不同解析方法的适用场景,选择最适合项目需求的XML解析...

    java实现word文档到xml文档转换浅析

    java实现word文档到xml文档转换浅析

    Android 解析word文档,过程详细,易懂,代码可直接复用-IT计算机-毕业设计.zip

    - 通过遍历XML流,解析Word文档的各个元素,如段落、标题、文本等。Apache POI提供了`XWPFDocument`类来处理这些元素。 4. **显示内容** - 将解析到的数据转换为适应Android UI的格式,如TextView、EditText等。 ...

    解析XML文件,并通过vc导入word文档

    1:使用Tinyxml库解析xml文件 2:采用COM技术调用OLE自动化对象,实现Word文档在vs++(2003)平台中的自动生成(本代码主要讲xml数据导入到word表格),涉及到光标跟随技术 3:环境 vs2003 word2013 如果不会使用Tiny...

    XML文件分离与解析

    这个过程涉及到文件操作和XML解析技术。 **XML文件分离** XML文件分离通常是指从一个包含多个XML文档的大文件中,通过编程方式将每个XML文档提取出来,保存为单独的文件。这一步骤可能涉及以下步骤: 1. **读取大...

    word的Mathtype的latex文本解析

    已经在csdn上传原文 ...百度搜索 "java解析mathtype" " OMath解析...经过分析xml,发现需要解析公式文本的本质是解析二进制文件 xxx.ole 所以以上程序就是负责解析这个的 命令: mteg - f xxx.ole 直接解析ole文件输出控制台

Global site tag (gtag.js) - Google Analytics