技術屋にゃん兵衛のてくてくらぼ by データウィズ [DataWith]

気の向くままソフトについて書いてます。バリバリエンジニアではないのであくまでも初心者目線で。

XMLBluePrintでWordファイルを開いてみた

XMLBluePrintでWordファイルを開いてみた

 

Microssoft Wordのdocx形式は、XMLであることを知っている人は多いと思います。

例えば、

Test_file.docx

の拡張子をzipに変えて

Test_file.zip

として、解凍してみると、次のようになります。

Wordファイルのzipを解凍したところ

ちなみに本文は、「word」フォルダの「document.xml」に入っています。

つまり圧縮されているだけであれば、「XMLエディターで開けるんじゃない?」と思ったわけです。

さて、今回は、XMLBluePrintでこのWordファイルを直接開いてみたので、その結果を書きます。

 

  1. XMLBluePrintを起動し、「ファイル」>「開く」を選びます。

    XMLBluePrintから開く

  2. で、開きたい「.docx」ファイルを直接選びます。
    今回使ったWordファイルの内容は次の感じです。
    「見出し1」「見出し2」と「本文」を単純に並べたものです。

    サンプルのWordファイル

  3. すると、そのまま開くことができました。zip圧縮されているファイルなので、ツリー表示の上部には「アーカイブ」と表示されています。

    読み込んだ後の表示

  4. 本文は「word」>「document.xml」なので、ツリーでダブルクリックして開きます。

    document.xmlを開く

  5. 見やすいように成形します。「XML」>「フォーマット」を選択します。

    XMLを整形して表示

  6. 少し見やすくなりました。


 

見出し1は

<w:p w:rsidP="4253DA2C" wp14:paraId="5BADD4ED" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordml" wp14:textId="0BC75358">
 <w:pPr>
  <w:pStyle w:val="Heading1" />
 </w:pPr>
 <w:r w:rsidR="4253DA2C">
  <w:rPr />
  <w:t>ここは見出し1です</w:t>
 </w:r>
</w:p>

で、「Heading1」というスタイルが当たっていることがわかります。

見出し2は

<w:p w:rsidR="4253DA2C" w:rsidP="4253DA2C" w:rsidRDefault="4253DA2C" w14:paraId="3E1DADBD" w14:textId="296B60EA">
 <w:pPr>
  <w:pStyle w:val="Heading2" />
 </w:pPr>
 <w:r w:rsidR="4253DA2C">
  <w:rPr />
  <w:t>ここは見出し2です</w:t>
 </w:r>
</w:p>

で「Heading2」になってますね。

本文はというと

<w:p w:rsidR="4253DA2C" w:rsidRDefault="4253DA2C" w14:paraId="22FCB4E7" w14:textId="4A87AF52">
 <w:r w:rsidR="4253DA2C">
  <w:rPr />
  <w:t>ここは本文です。</w:t>
 </w:r>
</w:p>

となり、

<w:pPr>
 <w:pStyle w:val="Heading2" />
</w:pPr>

のセクションがないことがわかります。

中身がみられるのは予想通りですが、さて、ここでXMLBluePrint内で本文を編集したらどうなるでしょう?

見出し2の本文を

<w:t>ここはXMLで修正した見出し2です</w:t>

と変更します。

「ファイル」>「保存」で上書き保存します。
さて、Wordで開くとどうなってるでしょうか。
正しく変更されてますね。

 

Wordがなくても、本文を編集できることは明らかで、また、XMLタグの意味が分かっていれば、スタイルの変更(見出しなど)もWordを使わなくてもできるということです。

 

例えば、本文を見出しに変えたい場合、

<w:p w:rsidR="4253DA2C" w:rsidRDefault="4253DA2C" w14:paraId="22FCB4E7" w14:textId="4A87AF52">
 <w:pPr>
  <w:pStyle w:val="Heading2" />
 </w:pPr>
 <w:r w:rsidR="4253DA2C">
  <w:rPr />
  <w:t>ここは本文です。</w:t>
 </w:r>
</w:p>

とすると、「本文」が「見出し2」に変ります。

プログラム的にWord文書を構造化したりするときにはこの機能を使うと楽そうですね。

ファイル内の他のXML、fontTable.xml、settings.xml、styles.xml、webSettings.xmlは、フォンと定義やレイアウトスタイルの情報なので、かなりガチで触りたい人はこれらも理解しておくことになりますね。

 

今回の目的は「XMLBluePrintでdocxを開いたらどうなるか」なので、これで目的は達成。