WordXML格式解析

2021-06-27 08:58:07 字數 3815 閱讀 1030

office2003以上,word可以以xml文字格式儲存,這樣就可以使用外部程式建立word檔案,而不需要使用word的物件。也能夠自由的開啟分析word檔案,或者發布到自己的web頁面,或者其他更多應用。

乙個典型的wordxml結構可以是如下的樣子:

<?xml version="1.0"?>

hello, world.

< /w:worddocument>

可以用記事本建立乙個檔案,將上面的xml內容貼上,並儲存為helloworld.xml,在office word中開啟它,就能看到如上圖所示的內容。

這是最簡單的wordxml內容,它包括這幾部分:

xml的宣告和命名空間的指明:

<?xml version="1.0"?>

文件內容

…從body內可以看出,構成實際文字內容的有3種型別節點:

表示乙個段落

表示乙個樣式串,指明它包括的文字的顯示樣式

表示真正的文字內容

如果我們需要指明乙個文字為粗體,需要怎麼辦呢?

2.0c

< /w:r>

表示該格式串種的文字為粗體。

這樣,我們就知道表示乙個特定的文字格式,稍微複雜點的格式:

< w:rpr> 

< w:b w:val="on"/>

< w:sz w:val="40"/>

< w:rfonts w:ascii="arial" w:eastasia="arial" w:hansi="arial" />

< /w:rpr> 

< w:t xml:space="preserve">2.0c

< /w:r>

字型為粗體,尺寸為是40除2等於20相當於幾號字型?,字型名稱「arial」

2.0c

中的xml:space="preserve"從字面上理解是保持空格。

如果沒有這內容的話文字的前後空格將會被word忽略。

如果我們需要指定乙個段的對齊方式,行距要怎麼辦呢?

這就要設定的屬性了。類似於這樣:

< w:ppr>

< w:jc w:val="right"/>

< w:spacing w:line="600" w:linerule="auto"/>

< /w:ppr>

…對齊方向:這兒是右對齊。

行距:600是用行距的倍數乘240得出,如果是兩倍行距,則是480。這兒應該是2.5倍行距。

由此可見,組裝乙個wordxml格式的檔案是一件比較簡單的事情。

將段屬性包含在中

將文字格式包含在中

這兒的pr是property的意思,表示這個塊中是r(run)或p(paragraph)的格式設定。

乙個wordxml的檔案結束了嗎?可以這樣講,但如果你雙擊剛才建立的xml檔案,有很大機會不會由word來開啟它。

這是為什麼呢?

我們還需要在合適的地方放置一條語句:

用來指明這個xml檔案的對應處理程式,對應登錄檔中的鍵值:

hkey_local_machine\software\microsoft\office\11.0\common\filter\text/xml

但是,加入這一條語句後,雙擊開啟時,word將會提示xml的格式不正確,雖然能開啟。那是因為還有許多的內容沒有宣告。我們就先不加這條語句。

下面內容設定了頁的寬,高,和頁的各邊距。各項的值均是英吋乘1440得出:

< /w:sectpr>

下面內容設定了頁的頁首頁尾:

w:sectpr wsp:rsidr="002c452c">

my header

my footer

< /w:body>

這兩段都很直白,就不需要解釋了。

< /w:docpr>

docpr,就是document property的意思了。

表示文件的檢視是「print」,檢視比例100%

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=""

xmlns:wx=""

xmlns:wsp="/sp2"

xmlns:sl=""

w:macrospresent="no" w:embeddedobjpresent="no" w:ocxpresent="no"

xml:space="preserve">

< 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: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:r>

< w:r>

< w:rpr> 

< w:sz w:val="48"/>

< w:rfonts w:ascii="arial" w:eastasia="arial" w:hansi="arial" />

< /w:rpr> 

< w:t>hello world!

< /w:r>

< /w:p>

< w:p>

< 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: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:r>

< /w:p>

< /w:ftr>

< /w:sectpr>

< /w:body>

< w:view w:val="print"/>

< /w:docpr>

< /w:worddocument>

這樣,乙個基本的wordxml就建立完成,當然,乙個應用級別的word文件絕對不僅這些內容,更詳細的內容需要參考ms office sdk。

WordXML格式初步分析

前言 office2003以上,word可以以xml文字格式儲存,這樣就可以使用外部程式建立word檔案,而不需要使用word的物件。也能夠自由的開啟分析word檔案,或者發布到自己的web頁面,或者其他更多應用。乙個典型的wordxml結構可以是如下的樣子 hello,world.可以用記事本建立...

wordxml文件格式說明

近期需要對word xml文件進行各種操作,需要熟悉 wordxml 文件格式,搜尋了一番後發現 open xml sdk 官網的文件最好。就按照官網說明來記錄一番 1 word xml 文件基本格式如下。文件是有多個部件組成,每個部件表示資料報中的乙個單獨檔案。每個文件部分都是以pkg part標...

學習 WordXML格式初步分析

前言 office2003以上,word可以以xml文字格式儲存,這樣就可以使用外部程式建立word檔案,而不需要使用word的物件。也能夠自由的開啟分析word檔案,或者發布到自己的web頁面,或者其他更多應用。乙個典型的wordxml結構可以是如下的樣子 hello,world.可以用記事本建立...