2011-06-18 7 views
0

私はPythonでlibxsltを使用してXSLスタイルシートを適用しているXMLデータファイルを取得しました。状況はほぼ完璧ですが、XSLファイル内の<hr/>のすべてのインスタンスは、unicode(applyStylesheet())の出力で<hr>になっています。これは私がやっていることのほとんどすべてです:libxsltのapplyStylesheet()は壊れたXHTMLを生成します

style = libxslt.parseStylesheetDoc(libxml2.parseFile('template.xsl')) 
xmlDoc = libxml2.parseFile('data.xml') 
data = unicode(self.style.applyStylesheet(xmlDoc, None)) 
xmlDoc.freeDoc() 

私は何か間違っていますか?出力を有効なXHTMLにするために欠けているオプションがありますか?

(私の現在の計画はちょうどそれを動作させるためにdata =ラインに.replace('<hr>','<hr/>')を追加することですが、もっと良い方法があるはずのようにそれはそう。)

答えて

2

我々はtemplate.xslファイルを見ることはできますか?それには<xsl:output/>タグが含まれていますか?このタグのmethod属性はhtmlに設定されていますか?

これが有効な場合、libxslはすべて自動的に自己閉じタグから/を削除します。

出力方法が正しいhtmlを出力するとは限りません。詳しくは、xml, html or xhtml in <xsl:output>: Which is the better choice?を参照してください。出力方法=「HTML」:

としては、最良の選択は、xhtmlだろうリンクの質問の答えで説明したが、それは唯一のバージョン2.

+0

うんで始まるXSLによってサポートされている、それはXSL < 'ていました/> 'に変更し、それを' 'に変更することで問題は解決されました。ありがとう。 – Isaac

関連する問題