0 && $edn < $lmax ) ? $edn: $lmax; $fmt = '%0'.strlen($edn).'d: '; for (; $stn<=$edn; $stn++ ) { $tstr = htmlspecialchars(mb_convert_encoding($lines[$stn-1],SOURCE_ENCODING,"auto")); $res .= ( $args[2] ? sprintf($fmt,$stn):'').refpre_replace_tab($tstr); } return '
'.$res.'
'; } ?> PythonでXsltを使うサンプル - HiiHahWIKI - making some notes for... -
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

PythonでXsltを使うサンプル

Last-modified: 2013-08-24 (土) 02:14:21 (2617d)
Top / PythonでXsltを使うサンプル

PythonでXsltを使うサンプル

lxmlライブラリのetreeを使ってPythonでxsltを扱うことが出来ます。

ちなみに、xsltのバージョンは1.0らしいです。

■コード

#!/usr/bin/env python
from lxml import etree
import StringIO

xslt_root = etree.XML('''\
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="/">
          <foo><xsl:value-of select="/a/b/text()" /></foo>
     </xsl:template>
</xsl:stylesheet>''')
transform = etree.XSLT(xslt_root)

f = StringIO.StringIO('<a><b>Text</b></a>')
doc = etree.parse(f)
result_tree = transform(doc)

print str(result_tree)

■出力

<?xml version="1.0"?>
<foo>Text</foo>

Pythonでxsltprocコマンドみたいなものをつくってみた

まあ、他愛もないけど、Linuxのxsltprocコマンドみたいなのを作ってみました。

使い方はこんな感じ。

python xstlproc.py xsltファイル xmlファイル [出力ファイル]

3つ目のオプション[出力ファイル]は任意です。指定しない場合、標準出力に出力します。

xsltproc.py?

#refpre("xsltproc.py",,1);

リンク


添付ファイル: filexsltproc.py 582件 [詳細]