Unicode源的XSLT转换

时间:2009-07-31 20:33:19

标签: python xslt unicode

在我的应用程序中,我使用4Suite.org XSLT library来执行源XML的转换。语法如下:

from Ft.Xml.Xslt import Transform
transformed_xml = Transform(raw_xml, stylesheet)

其中raw_xmlstylesheet已在我的应用程序的其他位置定义。 raw_xml将是读取使用编解码器模块打开的文件句柄的xml,因此raw_xml将是unicode。

问题是Transform()函数需要源xml(在我的例子中为raw_xml)的值为ascii。它在pydoc中这样说,如果我尝试转换unicode,我自己的程序就会失败并出现错误。

是否有不同的方法或是否有另一个python库可以对unicode源执行XSLT转换?或者,我是否误解了有关XSLT转换的内容?

2 个答案:

答案 0 :(得分:2)

您最好使用更现代化且更积极的lxml

答案 1 :(得分:2)

我不确定Transform实际上需要 ascii - 在我看来它应该支持任何编码的Python str。如果你调用Transform(raw_xml.encode('utf8'), stylesheet)(然后当你完成处理它时将生成的utf8编码的字符串解码回Unicode,如果你需要Unicode)会发生什么 - 这不起作用吗?