Index > XMLのマークアップを除去する...XML文書からテキストファイルを作成(XHTMLも可)
Sun, January 25, 2009

XMLのマークアップを除去する...XML文書からテキストファイルを作成(XHTMLも可)

以前、 HTMLのマークアップを除去する...HTML文書からテキストファイルを作成(Javaを使用) というエントリーを書いたのですが、XSLTを使えばもっと簡単に処理できることが判明。

ただし、処理対象になるXML文書は well-formed でないといけない・・・ という意味では、ネット上のHTMLをこれで処理するのは難しい。

XML文書からテキストファイルの作成

これは、O'REILLYのXML HACKS #32からの抜粋です。

text.xsl

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method="text" encoding="UTF-8" />

<xsl:template match="/">
    <xsl:apply-templates select="*" />
</xsl:template>

</xsl:stylesheet>

このスタイルシートを使って変換するには、XSLTが必要です。 今回は、saxon9 を使います。

から、saxonb9-1-0-5j.zip をダウンロードして、saxon/ 以下に展開しました。
その上で、以下の通り実行。

$ java -jar saxon/saxon9.jar -s:sample.xml -xsl:text.xsl -o:sample.txt

Makefile

繰り返し処理する場合に コマンドラインでの入力を省略するため、以下のような Makefile を用意すると便利です。

saxon=saxon/saxon9.jar

stylesheet=text.xsl
in=sample.xml
out=sample.txt


$(out) : $(in) $(stylesheet)
    @java -jar $(saxon) -s:$< -xsl:$(stylesheet) -o:$@

clean :
    @$(RM) $(out)

今回使用したファイル

 Twitter
follow me on Twitter
 Categories