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)
今回使用したファイル
- text.xsl スタイルシート
- sample.xml 処理対象になるXML文書
- sample.txt テキスト化した結果のテキストファイル