转自:http://www.cnblogs.com/luolongda/archive/2010/09/26/1835958.html
前言
Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。
一个典型的WordXML结构可以是如下的样子:
<?xml version="1.0"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<w:body>
<w:p>
<w:r>
<w:t>Hello, World.</w:t>
</w:r>
</w:p>
</w:body>
< /w:wordDocument>
可以用记事本创建一个文件,将上面的XML内容粘贴,并保存为helloworld.xml,在Office Word中打开它,就能看到如上图所示的内容。
这是最简单的WordXML内容,它包括这几部分:
XML的声明和名称空间的指明:
<?xml version="1.0"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
文档内容
<w:body>…</w:body>
基本节点类型
从body内可以看出,构成实际文本内容的有3中类型节点:
<w:p> 表示一个段落
<w:r> 表示一个样式串,指明它包括的文本的显示样式
<w:t> 表示真正的文本内容
如果我们需要指明一个文本为粗体,需要怎么办呢?
<w:r>
<w:rPr>
<w:b w:val="on"/>
</w:rPr>
<w:t> 2.0C</w:t>
< /w:r>
<w:b w:val=”on”> 表示该格式串种的文本为粗体。
这样,我们就知道<w:r>表示一个特定的文本格式,稍微复杂点的格式:
<w:r>
< w:rPr>
< w:b w:val="on"/>
< w:sz w:val="40"/><w:szCs w:val="40"/>
< w:rFonts w:ascii="Arial" w:eastAsia="Arial" w:hAnsi="Arial" />
< /w:rPr>
< w:t xml:space="preserve">2.0C</w:t>
< /w:r>
字体为粗体,尺寸为是40除2等于20相当于几号字体?,字体名称“Arial”
<w:t xml:space="preserve"> 2.0C</w:t>
中的xml:space="preserve"从字面上理解是保持空格。
如果没有这内容的话文本的前后空格将会被Word忽略。
如果我们需要指定一个段的对齐方式,行距要怎么办呢?
这就要设置<w:p>的属性了。类似于这样:
<w:p>
< w:pPr>
< w:jc w:val="right"/>
< w:spacing w:line="600" w:lineRule="auto"/>
< /w:pPr>
…
</w:p>
对齐方向:<w:jc w:val=”right”/> 这儿是右对齐。
行距:<w:spacing w:line=”600” w:lineRule="auto"/> 600是用行距的倍数乘240得出,如果是两倍行距,则是480。这儿应该是2.5倍行距。
由此可见,组装一个WordXML格式的文件是一件比较简单的事情。
将段属性包含在<w:pPr></w:pPr>中
将文本格式包含在<w:rPr></w:rPr>中
这儿的Pr是property的意思,表示这个块中是r(run)或p(paragraph)的格式设置。
一个WordXML的文件结束了吗?可以这样讲,但如果你双击刚才创建的XML文件,有很大机会不会由Word来打开它。
这是为什么呢?
我们还需要在合适的地方放置一条语句:
<?xml version="1.0"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument
用来指明这个xml文件的对应处理程序,对应注册表中的键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\Filter\text/xml
但是,加入这一条语句后,双击打开时,Word将会提示XML的格式不正确,虽然能打开。那是因为还有许多的内容没有声明。我们就先不加这条语句。
页面设置
下面内容设置了页的宽,高,和页的各边距。各项的值均是英寸乘1440得出:
<w:body>…
<w:sectPr>
<w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/>
< /w:sectPr>
</w:body>
下面内容设置了页的页眉页脚:
w:sectPr wsp:rsidR="002C452C">
<w:hdr w:type="odd" >
<w:p>
<w:pPr>
<w:pStyle w:val="Header"/>
</w:pPr>
<w:r>
<w:t>My Header</w:t>
</w:r>
</w:p>
</w:hdr>
<w:ftr w:type="odd">
<w:p>
<w:pPr>
<w:pStyle w:val="Footer"/>
</w:pPr>
<w:r>
<w:t>My Footer</w:t>
</w:r>
</w:p>
</w:ftr>
</w:sectPr>
< /w:body>
这两段都很直白,就不需要解释了。
文档设置
</w:body>
<w:docPr>
<w:view w:val="print"/><w:zoom w:percent="100"/>
< /w:docPr>
</w:wordDocument>
docPr,就是document property的意思了。
表示文档的视图是“print”,视图比例100%
完整的XML文件实例
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
< ?mso-application progid="Word.Document"?>
< w:wordDocument xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2"
xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no"
xml:space="preserve">
<w:body>
< w:p>
< w:pPr>
< w:jc w:val="left"/>
< w:spacing w:line="240" w:lineRule="auto"/>
< /w:pPr>
< w:r>
< w:rPr>
< w:sz w:val="24"/><w:szCs w:val="24"/>
< w:rFonts w:ascii="Arial" w:eastAsia="Arial" w:hAnsi="Arial" />
< /w:rPr>
< w:t>Niu don't like Red or Blue! It seems that </w:t>
< /w:r>
< w:r>
< w:rPr>
< w:sz w:val="48"/><w:szCs w:val="48"/>
< w:rFonts w:ascii="Arial" w:eastAsia="Arial" w:hAnsi="Arial" />
< /w:rPr>
< w:t>Hello world!</w:t>
< /w:r>
< /w:p>
< w:p>
<w:sectPr wsp:rsidR="002C452C">
< w:pgSz w:w="12240" w:h="15840"/>
< w:pgMar w:top="1526.4" w:right="3254.4" w:bottom="2966.4" w:left="1670.4" w:header="720" w:footer="720" w:gutter="0"/>
< w:hdr w:type="odd" >
< w:p>
< w:pPr>
< w:pStyle w:val="Header"/>
< /w:pPr>
< w:r>
< w:t>Header</w:t>
< /w:r>
< /w:p>
< /w:hdr>
< w:ftr w:type="odd">
< w:p>
< w:pPr>
< w:pStyle w:val="Footer"/>
< /w:pPr>
< w:r>
< w:t>Footer</w:t>
< /w:r>
< /w:p>
< /w:ftr>
< /w:sectPr>
< /w:body>
<w:docPr>
< w:view w:val="print"/><w:zoom w:percent="100"/>
< /w:docPr>
< /w:wordDocument>
这样,一个基本的WordXML就创建完成,当然,一个应用级别的Word文档绝对不仅这些内容,更详细的内容需要参考MS Office SDK。
相关推荐
java实现word文档到xml文档转换浅析
### XML架构浅析 #### 一、XML架构概述 XML(Extensible Markup Language)是一种标记语言,用于描述数据。XML架构定义语言(XML Schema Definition,简称XSD)为XML文档提供了一种类型系统,用于定义XML文档中的...
(完整word)浅析互联网对青少年成长的利与弊.doc
VFP操作WORD浅析,认真研究学习,才有进步!
二进制XML(Binary XML)是一种优化XML数据存储和传输的方式,它将XML文档转换成更紧凑、更高效的二进制格式,以提高处理速度和减少网络传输的开销。XML,全称Extensible Markup Language,是用于标记数据、使数据...
浅析转基因食品的安全性.pptx
通过对计算机病毒的介绍,延伸出在不借助专业杀毒软件的情况下,如何手工查杀计算机病毒的方法
浅析XML数据库.pptx
浅析油田转油站节能降耗技术.doc
### C# 操作XML的全过程实例浅析 #### 建立Xml对象浅析 在C#中操作XML,首要步骤是建立一个`XmlDocument`对象,这是.NET框架中的一个核心类,用于处理和存储XML数据。通过这个对象,我们可以构建、修改、查询和...
Excel支持多种数据导入和导出格式,如CSV、TXT、XML等。Excel广泛应用于企业中,对于数据分析、报表生成和数据共享等具有重要作用。 在Delphi开发环境中,将SQL数据转换到Excel模板需要经过以下几个步骤: 1. 连接...
SVG(Scable Vector Graphics,可升级矢量图像)是一种基于XML的开放的矢量图形描述语言。SVG图像是与XML1.0兼容的文档,SVG元素是指示如何绘制图像的一些指令,阅读器(Viewer)解释这些指令,把SVG图像在指定设备上...
(完整word版)浅析移动电子商务在娱乐业的应用.doc
"ASP.NET编程知识:ASP.net处理XML数据实例浅析" 本文将对 ASP.NET 处理 XML 数据的方法进行详细的讲解和分析。XML 是一种可扩展的标记语言,具有很大的灵活性,它的主要作用是作为一种数据存储或者数据传输的工具...
### 浅析XML数据库 #### XML简介 XML(Extensible Markup Language,可扩展标记语言)是一种灵活且可自定义的标记语言,与HTML相似但用途不同。XML的主要目的是描述数据而不是展示数据,这意味着用户可以自定义...
(完整word版)浅析企业网络安全的重要性.doc
浅析网络安全技术.pdf浅析网络安全技术.pdf浅析网络安全技术.pdf
浅析电力系统感性无功补偿 浅析电力系统感性无功补偿
浅析国有煤炭企业的转型发展.doc
Web数据挖掘已经成为当前广泛研究的课题。目前许多网站都是用HTML构建的,给Web数据挖掘带来...困难,XML的出现为Web数据挖掘带来了便利。本文介绍了Web数据挖掘的概念和遇到的困难,分析了XML在Web数据挖掘 中的应用。